Download or view moonsize.frink in plain text format
use sun.frink
// This program graphically draws the size (and phase) of the moon's closest
// point each day for many years. It sort of debunks the idea that the
// so-called "supermoon" is really special at all.
g = new graphics
daynum = 0
lat = 40 degrees North
long = 105 degrees West
// Moons per row. Lunar month is ~29.53 days so you can change this to 29 or 30
perline = (lunarmonth/day)
start = beginningOfYear[now[]]
end = beginningOfYearPlus[now[], 3]
for a = start to end step day
{
interval = new interval[a, a + 1 day]
r = moonRadiusAngle[interval]
closest = supremum[r]
// Use this line instead to just draw the size of the moon and not its phase.
// g.fillEllipseCenter[x mod perline, x div perline, 200 closest, 200 closest]
g.add[drawMoonPolygonRelativeToZenith[a+12 hours, lat, long, daynum mod perline, daynum div perline, 100 closest, true]]
daynum = daynum + 1
}
//g.font["SansSerif", "italic+bold", .95]
//g.text["A year of moons and another year of Sky & Telescope!", 28/2, 14]
// Comment this next line out to save printer ink.
g=g.invertGrays[]
g.show[]
g.write["moons.svg",1024,undef]
g.write["moons.png",1024,undef]
//g.printTiled[2,1]
Download or view moonsize.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 20218 days, 0 hours, 1 minutes ago.