Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/freesc/surface.scm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 30 - (show annotations) (download)
Mon Feb 26 13:50:55 2007 UTC (17 years, 1 month ago) by tmurakam
File size: 1303 byte(s)
file moved

1 //
2 // Surface draw
3 //
4
5 defun Surface_Draw
6 local($i $n $rlat $rlon $alt $bitmap $lat $lon $x $y $scale)
7
8 if (%# < 3 || ((%# - 3) % 2) != 0)
9 Error(ENUMPARAM)
10 endif
11
12 $bitmap = %1
13 $alt = %2
14 $scale = %3
15 Shift(3)
16
17 $n = %# / 2
18
19 // Calculate center position for RefPoint
20 $rlat = 0
21 $rlon = 0
22
23 for ($i = 0, $i < $n, $i = $i + 1)
24 $rlat = $rlat + mparam([$i * 2])
25 $rlon = $rlon + mparam([$i * 2 + 1])
26 fend
27 $rlat = $rlat / $n
28 $rlon = $rlon / $n
29
30 // Start Area/RefPoint
31 Area(5 $rlat $rlon 20)
32 if ($alt == 0)
33 RefPoint( 7 : $scale $rlat $rlon )
34 else
35 RefPoint( 2 : $scale $rlat $rlon E= $alt )
36 endif
37
38 // Define Points
39 local(@points)
40 for ($i = 0, $i < $n, $i = $i + 1)
41 $lat = mparam([$i * 2])
42 $lon = mparam([$i * 2 + 1])
43
44 $y = ($lat - $rlat) / 360.0 * 40007.0 * 1000.0;
45 $x = ($lon - $rlon) / 360.0 * 40007.0 * 1000.0
46 * cos($rlat);
47
48 $y = $y / $scale;
49 $x = $x / $scale;
50
51 $points{[$i * 3 ]} = $x
52 $points{[$i * 3 + 1]} = 0
53 $points{[$i * 3 + 2]} = $y
54 fend
55
56 Points( 0 @points )
57
58 // draw
59 LFNBitmap($bitmap)
60
61 ConcavePoly
62
63 // Poly
64 local(@pts)
65 for ($i = 0, $i < $n, $i = $i + 1)
66 $pts{$i} = $i;
67 fend
68 Poly(m 0 32767 0 0 @pts)
69
70
71 // StartSurface
72 // MoveToPt( 0 )
73
74 // $i = 1
75 // while ($i < $n)
76 // DrawToPt($i)
77 // $i = $i + 1
78 // wend
79 // EndSurface
80
81 EndA
82 endfun

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26