moon_img.py

Created by vef03715

Created on February 01, 2021

927 Bytes


from math import *
from kandinsky import *

def moon(m,d,y):
  j=jd(m,d,y)
  n=(j+5.367)/29.53058
  x=n-int(n)
  p=int(abs(2*(x)-1)*100)
  w=int(2*x)
  return [p,w]

def jd(m,d,y):
  if m<3:
    y-=1
    m+=12
  a=int(y/100)
  b=2-a+int(a/4)
  e=int(365.25*(y+4716))
  f=int(30.6001*(m+1))
  return b+d+e+f-1524.5
  
def moon_img():
  m=int(input("Month (1-12): "))
  d=int(input("Day (1-31): "))
  y=int(input("Year (1582-4000): "))
  pct,wax=moon(m,d,y)
  fill_rect(0,0,320,222,color(0,0,0))
  n=60
  for yi in range(-n,n):
    y=yi/n
    x2=(1-y*y)**.5
    x1=-x2
    if wax:
      xa=x2-(x2-x1)*pct/100
      xb=x2
    else:
      xa=x1
      xb=x1+(x2-x1)*pct/100
    xp=int(90*xa+160)
    yp=int(90*y+105)
    xn=int(90*(xb-xa))
    yn=1
    fill_rect(xp,yp,xn,yn,color(255,255,255))
    
  w="Waxing" if wax else "Waning"
  c1=color(255,255,255)
  c2=color(0,0,0)
  draw_string(w,130,200,c1,c2)
  return