inverseSinusoidal.frink

Download or view inverseSinusoidal.frink in plain text format


/** This draws an inverse sinusoidal projection, suitable for mapping a drawing
    onto a sphere. */


longStep = 15 degrees
latStep = 10 degrees

g = new graphics
g.color[0,0,0,.3]

lastY = 0 degrees
for lat = 0 degrees to 90 degrees step latStep
{
   g.line[-180 deg, lat, 180 deg, lat]
   g.line[-180 deg, -lat, 180 deg, -lat]
}

for long = longStep/2 to 180 degrees step longStep
{
   lastX = long
   lastY = 0 degrees
   
   LAT:
   for lat = 0 deg to 90 degrees step latStep/20
   {
      longScale = 1 / cos[lat]
      x = long * longScale
      if x > 180 degrees
         break LAT
      
      g.line[x, lat, lastX, lastY]
      g.line[-x, lat, -lastX, lastY]
      g.line[x, -lat, lastX, -lastY]
      g.line[-x, -lat, -lastX, -lastY]

      lastX = x
      lastY = lat
   }
   
}

g.drawRectSides[-180 deg, 90 deg, 180 deg, -90 deg]
g.show[]


Download or view inverseSinusoidal.frink in plain text format


This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen was born 19976 days, 3 hours, 12 minutes ago.