REM a:緯度 b:地軸と公転軸の傾き c:最小南中角 d:最大南中角
REM f1:パネルの法線ベクトルと鉛直線のなす角(tanの値) h1:パネルの方向と南のなす角(度),東を+
REM ex,ey,ezはパネルの法線方向の単位ベクトルの成分
SET WINDOW -1.1,1.1,-1.1,1.1
DRAW circle
PLOT LINES:-1,0;1,0
PLOT LINES:0,-1;0,1
PLOT TEXT ,AT 0,-1:"東"
PLOT TEXT ,AT 0,1:"西"
PLOT TEXT ,AT 1,0:"北"
PLOT TEXT ,AT -1,0:"南"
PLOT TEXT ,AT 0,0:"天頂"
PLOT TEXT ,AT -0.71,-0.71:"地平"
INPUT PROMPT "パネルの向き南からの東向きへの角(度)=":h1
INPUT PROMPT "緯度(度)=":a1
LET f1=0.4
LET b1=23.4
LET c1=90-(a1+b1)
LET d1=90-(a1-b1)
LET a=a1*PI/180
LET b=b1*PI/180
LET c=c1*PI/180
LET d=d1*PI/180
LET f=atn(f1)
LET h=h1*PI/180
LET ex=SIN(f)*SIN(h)
LET ey=-SIN(f)*COS(h)
LET ez=COS(f)
FOR i=0 TO 6 STEP 1
LET r=(c+d)/2+ASIN(COS(PI/6*i)*SIN(b))
IF i=5 THEN 20
LET j=i+1
GOTO 30
20 LET j=12
30 SET POINT COLOR j
40 FOR s=0 TO 2*PI STEP PI/72
LET p=SIN(a+r)*COS(s)
LET q=SIN(a+r)*SIN(s)*SIN(a)-COS(a)*COS(a+r)
LET rr=-SIN(a+r)*SIN(s)*COS(a)-COS(a+r)*SIN(a)
IF rr<-0.001 THEN 10
LET ep=ex*p+ey*q+ez*rr
LET sx=ep*ex
LET sy=ep*ey
LET sz=ep*ez
LET qx=2*sx-p
LET qy=2*sy-q
LET qz=2*sz-rr
IF qz<-0.2 THEN 10
REM LET t=(1-qz)/sqr(qx^2+qy^2)
LET t=(1-2/PI*ASIN(qz))/SQR(qx^2+qy^2)
LET tx=qy*t
LET ty=-qx*t
PLOT POINTS:tx,ty
10 NEXT s
NEXT i
END