CADRANS SOLAIRES INCLINES:PROGRAMME BASIC

Jean Pakhomoff

 

 

10 REM programme basic Jean Pakhomoff juillet 2021

60 PI=4*ATN(1):OPEN"cadincl.docx" FOR OUTPUT AS #1
65 INPUT"longueur cm, latitude °, déclinaison gnomonique °, inclinaison °",L,FF,
DGG,II
70 F=FF*PI/180:DG=DGG*PI/180:I=II*PI/180
75 PRINT"long = ";L;" cm";" lat = ";FF;" décl gnomo = ";DGG;" incl = ";II:PRI
NT #1,"long = ";L;" cm";" lat = ";FF;" décl gnomo = ";DGG;" incl = ";II
80 J=ATN (COS (DG)/TAN(I)):JJ=J*180/PI
85 V=ATN (1/(SIN (I)*TAN(DG))):VV=V*180/PI
90 INPUT "cadran déclinant = 1; inclinant = 2: 1 ou 2?",CDS
95 IF CDS = 2 THEN 6000:REM cadi=2, kado=3
97 REM IDW IDE
100 IF J<F THEN 3000:REM cadi=1, kado=2
105 REM j>f
107 CADI=1:KADO=1
110 REM calcul du style
115 O1L=L*SIN (F)/COS (I):AO2=L*COS (F)*SIN (DG):O1K=AO2:O1A=L*SIN (F):KT1=O1L:O
1S=L*SIN (F)/(COS (I)*SIN (V))
118 OT1 = L*(COS (F)*COS (DG) - SIN (F)*TAN (I))
120 TT1=OT1*SIN (I):KT=KT1+TT1
125 OT=L*COS (F)*COS (DG)*COS (I)-L*SIN (F)*SIN (I):O1T=SQR(L^2-OT^2):AS=L*SIN
(F)*TAN (I)/COS (DG)
130 PRINT "AO''= ";AO2;" O'K = AO'' ";" O'A = ";O1A;" O'L = KT' = ";O1L;" TT
' = ";TT1;" KT = KT'+TT' = ";KT;" OT = ";OT;"O'T = ";O1T;" O'S = ";O1S;" AS
= ";AS
135 PRINT "j = ";JJ;"° v = ";VV;"°"
140 PRINT #1,"AO''= ";AO2;" O'K = AO'' ";" O'A = ";O1A;" O'L = KT' = ";O1L;"
142 PRINT #1,"TT' = ";TT1;" KT = KT' + TT' = ";KT;" OT = ";OT;" O'T = ";O1T;"
O'S = ";O1S;" AS = ";AS
145 PRINT #1,"j = ";JJ;"° v = ";VV;"°"
145 PRINT #1,"j = ";JJ;"° v = ";VV;"°"
160 INPUT "angle horaire choisi en °?",THT:T=THT*PI/180
163 PRINT "Angle horaire choisi = ";THT:PRINT#1,"ANGLE HORAIRE CHOISI = ";THT
165 INPUT "déclinaison solaire en °?",DSS:DS=DSS*PI/180:PRINT "déclinaison = ";D
SS: PRINT #1,"déclinaison = ";DSS
166 REM condition de validité de la déclinaison pour qu'il y ait passage sur le
cadran
167 GOSUB 7650: IF DMM=1 THEN 172
168 PRINT "astre constamment sur ou sous le cadran: ni lever ni coucher. Dans l'
hémisph nord on ne retient que les déclinaisons positives"
169 PRINT #1, "astre constamment sur ou sous le cadran: ni lever ni coucher. Dan
s l'hémisph nord on ne retient que les déclinaisons positives"
170 REM Dans l'hémisph nord on ne retient que les déclinaisons positives"
171 IF DS<0 THEN 9050
172 INPUT "déclinaison confirmée:appuyer sur m, autre déclinaison sur d,arrêt su
r a:m,d ou a?",J$
175 IF J$="a" THEN 9050
180 IF J$ = "m" THEN 191
185 INPUT "entrer la nouvelle déclinaison",DSS:DS=DSS*PI/180
186 PRINT "déclinaison = ";DSS: PRINT #1, "déclinaison = ";DSS
187 REM heures de passages sur le cadran
190 REM arc semi-diurne
191 IF DS>PI/2-F OR DS=PI/2-F THEN PRINT "astre en permanence sur l'horizon":PRI
NT #1, "astre en permanence sur l'horizon":GOTO 250:REM pas de calcul de R ni as
d

193 gosub 7000: rem passages dans le plan du cadran calcul de R
194 if pdr=1 then 250

195 ASD=-TAN (DS)*TAN (F)
196 IF ASD=0 THEN ASD=PI/2:GOTO 200
197 ASD=ATN(SQR(1-ASD^2)/ASD)
200 IF ASD<0 THEN ASD=ASD+PI
203 PRINT "asd = ";ASD*180/PI:PRINT #1,"asd = ";ASD*180/PI
205 IF ASD>T THEN 250
210 PRINT "ASD = "; ASD;" t > asd: continuer avec un autre angle horaire = p;
arrêt = a: p ou a?"
215 INPUT "p ou a ?",K$
220 IF K$ = "a" THEN 9050
225 GOTO 160
250 GOSUB 8000:REM calcul de HH, TT et h

260 rem calcul de R par le cosinus
270 gosub 8550

290 INPUT "IDWLW, IDELE = 1; IDWLE, IDELW = 2: 1 ou 2",NN
300 IF NN=2 THEN 1000
303 REM IDWLW, IDELE
320 PRINT " IDWLW, IDELE":PRINT #1, "IDWLW, IDELE"
330 IF TT=PI/2-DG OR TT>PI/2-DG THEN 410
340 REM TT<pi/2-dg le soleil est toujours devant le cadran
350 HI=ATN (SIN (J-F)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG+HH)-SIN (J-F)*SIN (HH)*C
OS (V)))
355 IF HI < 0 THEN HI=HI+PI
360 J1=ATN (COS (DG+TT)/TAN (I)):SU=SIN (J1)/COS (I): REM su = sin u
365 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin u
= ";SU
370 O1G=L*SIN (F)*SIN (V)/(SIN (J)*SIN (V+HI))
380 GP1=L*SIN (J-F)*COS (DG)*SIN (H)*SU/(SIN (J1+H)*SIN (J)*COS (DG+TT)*SIN (V+H
I))
385 O1P1=O1G+GP1:XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI):REM en partant de O'
390 YP1S=YP1O1-O1S:REM en partant de S (on a vu que O1S=l*sin f / sin j
400 GOTO 9000
410 IF TT>PI/2-DG THEN 480
420 REM TT=pi/2-dg
430 HI=ATN (SIN (J-F)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG+HH)-SIN (J-F)*SIN (HH)*
COS (V)))
435 IF HI < 0 THEN HI=HI+PI
440 T1T2=(L*COS (F)*COS (DG)-L*SIN (F)*TAN (I))/SIN (I)
450 ST2=T1T2/SIN (V):O1T2=O1S+ST2:O1P1=SIN (V)*O1T2/SIN (HI+V)
460 XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI):YP1S=YP1O1-O1S
470 GOTO 9000
478 REM TT>pi/2-dg
480 IF HH<PI/2-DG THEN 513
490 PRINT"cadran non éclairé: soleil derrière le cadran":PRINT #1, "cadran non é
clairé: soleil derrière le cadran"
495 INPUT "autre angle horaire = z; arrêt = a: z ou a ?",L$
500 IF L$="z" THEN 160
505 GOTO 9050
510 REM TT>pi/2-dg et HH<pi/2-dg
513 J1=ATN (-COS (DG+TT)/TAN (I)):SU=SIN (J1)/COS (I)
515 GOSUB 8220:REM tg RT = (1/tg i)*(- cos (TT+dg))
518 IF H>RT THEN 620
519 PRINT "cadran non éclairé: h<RT";"H= ";H*180/PI;" RT= ";RT*180/PI:PRINT #1,
" cadran non éclairé: H<RT";"h= ";H*180/PI;" RT= ";RT*180/PI
520 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin u
= ";SU
530 GOSUB 8470
600 INPUT" autre angle horaire = z; arrêt = a",M$
605 IF M$ = "z" THEN 160
610 END
620 HI=ATN (SIN (J-F)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG+HH)-SIN (J-F)*SIN (HH)*C
OS (V)))
625 IF HI < 0 THEN HI=HI+PI
630 O1G=L*SIN (F)*SIN (V)/(SIN (J)*SIN (V+HI))
640 GP1=- L*SIN (J-F)*COS (DG)*SIN (H)*SU/(SIN (H-J1)*SIN (J)*COS (DG+TT)*SIN (V
+HI))
650 O1P1=O1G+GP1:XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI):REM en partant de O'
700 YP1S=YP1O1-O1S
710 GOTO 9000
1000 REM IDWLE, IDELW
1003 PRINT " IDWLE, IDELW":PRINT #1," IDWLE, IDELW"
1020 IF TT = PI/2+DG OR TT>PI/2+DG THEN 1140
1030 REM TT<pi/2+dg
1040 HI=ATN (SIN (J-F)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG-HH)+SIN (J-F)*SIN (HH)*
COS (V)))
1045 IF HI < 0 THEN HI=HI+PI
1050 J1=ATN (COS (DG-TT)/TAN (I)):SU=SIN (J1)/COS (I): REM su = sin u
1055 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
1060 O1G=L*SIN (F)*SIN (V)/(SIN (J)*SIN (V-HI))
1070 GP1=L*SIN (J-F)*COS (DG)*SIN (H)*SU/(SIN (J1+H)*SIN (J)*COS (DG-TT)*SIN (V-
HI))
1080 O1P1=O1G+GP1:XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI):REM en partant de O'
1090 YP1S=YP1O1-O1S:REM en partant de S (on a vu que O1S=l*sin f / sin j
1100 GOTO 9000
1140 IF TT>PI/2+DG THEN 1220
1150 REM TT = pi/2+dg
1160 HI=ATN (SIN (J-F)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG-HH)+SIN (J-F)*SIN (HH)*
COS (V)))
1165 IF HI < 0 THEN HI=HI+PI
1170 T1T2 = (L*COS (F)*COS (DG)-L*SIN(F)*TAN (I))/SIN (I):ST2=T1T2/SIN (V):O1T2=
O1S+ST2
1180 O1P1=SIN (V)*O1T2/SIN (V-HI)
1190 XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI):YP1S=0
1200 GOTO 9000
1220 IF HH<PI/2+DG THEN 1280
1230 PRINT"cadran non éclairé: soleil derrière le cadran":PRINT #1, "cadran non
éclairé:soleil derrière le cadran"
1240 INPUT "autre angle horaire = z; arrêt = a: z ou a ?",L$
1250 IF L$="z" THEN 160
1260 GOTO 9050
1270 REM TT>pi/2+dg et HH<pi/2+dg
1280 J1=ATN (-COS (TT-DG)/TAN (I)):SU=SIN (J1)/COS (I)
1285 PRINT "j' = ";J1*180/PI:PRINT #1, "j' = ";J1; " sin U = ";SU
1290 GOSUB 8280:REM tg RT = (1/tg i)*(- cos (TT-dg))
1295 IF H>RT THEN 1350
1300 PRINT "cadran non éclairé: h<RT"; H= ";h*180/pi;" RT= ";RT*180/pi:print #1
," CADRAN NON CLAIR: H<RT"; h= ";H*180/PI;" RT= ";RT*180/PI
1305 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
1310 GOSUB 8470
1320 INPUT" autre angle horaire = z; arrêt = a",M$
1330 IF M$ = "z" THEN 160
1340 END
1350 HI=ATN (SIN (J-F)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG-HH)+SIN (J-F)*SIN (HH)*
COS (V)))
1355 IF HI < 0 THEN HI=HI+PI
1360 O1G=L*SIN (F)*SIN (V)/(SIN (J)*SIN (V-HI))
1370 GP1=- L*SIN (J-F)*COS (DG)*SIN (H)*SU/(SIN (H-J1)*SIN (J)*COS (TT-DG)*SIN (
V-HI))
1380 O1P1=O1G+GP1:XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI):REM en partant de O'
1390 YP1S=YP1O1-O1S
1400 GOTO 9000

3000 REM calcul du style j<f j v sont connus.
3003 CADI=1:KADO=2
3005 O1L=L*SIN (F)/COS (I):AO2=L*COS (F)*SIN (DG):O1K=AO2:O1A=L*SIN (F)
3007 KT1=O1L:O1S=L*SIN (F)/(COS (I)*SIN (V))
3010 TT1=L*SIN (I)*(-COS (F)*COS (DG)+SIN (F)*TAN (I)):KT=KT1-TT1
3015 OT=-L*COS (F)*COS (DG)*COS (I)+L*SIN (F)*SIN (I)
3016 O1T=SQR(L^2-OT^2):AS=L*SIN(F)*TAN (I)/COS (DG)
3018 LS = L*SIN (F)*TAN (I) * TAN (DG):ST1=LS-AO2
3020 PRINT "AO''= ";AO2;" O'K = AO''";" O'A = ";O1A;" O'L = KT' = ";O1L;" TT'
= ";TT1;" KT = KT' - TT' = ";KT;" OT = ";OT;" O'T = ";O1T;" O'S = ";O1S;"AS
= ";AS
3025 PRINT "LT' = AO'' = O'K = ";AO2;" ST1 = ";ST1;" LS = ";LS
3035 PRINT #1,"AO''= ";AO2;" O'K = AO'' ";" O'A = ";O1A;" O'L = KT' = ";O1L;"
3040 PRINT #1,"TT' = ";TT1;" KT = KT' - TT' = ";KT;" OT = ";OT;" O'T = ";O1T;
" O'S = ";O1S;" AS = ";AS
3043 PRINT #1, "LT' = AO'' = O'K = ";AO2;" ST1 = ";ST1;" LS = ";LS
3045 PRINT #1,"j = ";JJ;"° v = ";VV;"°"
3050 INPUT "angle horaire choisi en ° ?",THT:T=THT*PI/180
3053 PRINT"angle horaire choisi = "; THT:PRINT# 1,"angle horaire choisi = ";THT
3055 INPUT "déclinaison solaire en °?",DSS:DS=DSS*PI/180:PRINT "déclinaison = ";
DSS: PRINT #1,"déclinaison = ";DSS
3056 REM condition de validité de la déclinaison pour qu'il y ait passage sur le
cadran
3060 GOSUB 7660: IF DMM=1 THEN 3080
3065 PRINT "astre constamment sur ou sous le cadran: ni lever ni coucher. Dans l
'hémisph nord on ne retient que les déclinaisons positives"
3070 PRINT #1, "astre constamment sur ou sous le cadran: ni lever ni coucher. Da
ns l'hémisph nord on ne retient que les déclinaisons positives"
3075 IF DS<0 THEN 9050
3080 INPUT "déclinaison confirmée:appuyer sur m, autre déclinaison sur d,arrêt s
ur a: m, d ou a?",J$
3085 IF J$="a" THEN 9050
3090 IF J$ = "m" THEN 3112
3100 INPUT "entrer la nouvelle déclinaison",DSS:DS=DSS*PI/180
3105 REM heures de passages sur le cadran
3110 REM arc semi-diurne
3112 IF DS>PI/2-F OR DS=PI/2-F THEN PRINT "astre en permanence sur l'horizon":P
RINT #1, "astre en permanence sur l'horizon":GOTO 3180:REM pas de calcul de R ni
asd

3113 gosub 7000:rem passages dans le plan du cadran calcul de R
3114 if pdr=1 then 3180

3115 ASD=-TAN(DS)*TAN(F):ASD =ATN (SQR(1-ASD^2)/ASD)
3120 IF ASD<0 THEN ASD=ASD+PI
3125 PRINT "asd = ";ASD*180/PI:PRINT #1,"asd = ";ASD*180/PI
3130 IF ASD>T THEN 3180
3140 PRINT "Le soleil est sous l'horizon: autres paramètres = p, arrêt = a"
3150 INPUT "p ou a ?",K$
3160 IF K$ = "a" THEN 9050
3170 GOTO 3050
3180 GOSUB 8000:REM calcul de HH, TT et h

3190 rem calcul de R par le cosinus
3200 gosub 8680

3230 INPUT "IDWLW, IDELE = 1; IDWLE, IDELW = 2 j < f: 1 ou 2",NN
3235 IF NN=2 THEN 4300:REM vers IDWLE, IDELW
3240 REM IDWLW, IDELE
3241 PRINT " IDWLW, IDELE j<f":PRINT #1, "IDWLW, IDELE j<f"
3250 IF TT>PI/2-DG OR TT=PI/2-DG THEN 3310
3253 REM TT<pi/2-dg le soleil est toujours devant le cadran
3255 HI=ATN (SIN (F-J)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG+HH)+SIN (F-J)*SIN (HH)*
COS (V)))
3257 IF HI < 0 THEN HI=HI+PI
3260 J1=ATN (COS (DG+TT)/TAN (I)):SU=SIN (J1)/COS (I): REM su = sin u
3265 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
3270 O1G=L*SIN (F)*SIN (V)/(SIN (J)*SIN (V-HI))
3275 GP1=L*SIN (F-J)*COS (DG)*SIN (H)*SU/(SIN (J1+H)*SIN (J)*COS (DG+TT)*SIN (V-
HI))
3280 O1P1=O1G-GP1:XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI):REM en partant de O'
3285 YP1S=- YP1O1+O1S:REM en partant de S (on a vu que O1S=l*sin f / sin j)
3300 GOTO 9000
3310 IF TT>PI/2-DG THEN 3380
3320 REM TT=pi/2-dg
3330 HI=ATN (SIN (F-J)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG+HH)+SIN (F-J)*SIN (HH)
*COS (V)))
3335 IF HI < 0 THEN HI=HI+PI
3340 O1T2=L*COS (F)/COS (J):O1P1=L*SIN (V)*COS (F)/(COS (J)*SIN (V-HI)):O1S=L*SI
N (F)/SIN (J)
3360 XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI):YP1S=O1S-YP1O1
3370 GOTO 9000
3375 REM TT>pi/2-dg
3380 IF HH>PI/2-DG OR HH=PI/2-DG THEN 3540
3410 REM TT>pi/2-dg et HH < pi/2-dg
3415 J1=ATN (-COS (DG+TT)/TAN (I)):SU=SIN (J1)/COS (I)
3420 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
3422 GOSUB 8220:REM CALCUL RT TG RT = (1/TG I) * (- COS (TT+DG)
3424 IF H>RT THEN 3480
3426 PRINT "cadran non éclairé: h<RT"; H= ";h*180/pi;" RT= ";RT*180/pi:print #1
," CADRAN NON CLAIR: H<RT"; h= ";H*180/PI;" RT= ";RT*180/PI
3428 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
3430 GOSUB 8470
3440 GOSUB 8480
3450 INPUT" autre angle horaire = z; arrêt = a",M$
3460 IF M$ = "z" THEN 3050
3470 GOTO 9050
3480 HI=ATN (SIN (F-J)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG+HH)+SIN (F-J)*SIN (HH)*
COS (V)))
3485 IF HI < 0 THEN HI=HI+PI
3490 O1G=L*SIN (F)*SIN (V)/(SIN (J)*SIN (V-HI))
3500 GP1=- L*SIN (F-J)*COS (DG)*SIN (H)*SU/(SIN (H-J1)*SIN (J)*COS (DG+TT)*SIN (
V-HI))
3510 O1P1=O1G-GP1:XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI): YP1S=- YP1O1+O1S
3530 GOTO 9000
3540 IF HH>PI/2-DG THEN 3580
3550 REM HH = pi/2-dg
3552 GOSUB 8220:REM CALCUL RT TG RT = (1/TG I) * (-COS (TT+ DG))
3553 IF H>RT THEN 3560
3554 PRINT "cadran non éclairé: h<RT"; H= ";h*180/pi;" RT= ";RT*180/pi:print #1,
" CADRAN NON CLAIR: H<RT"; h= ";H*180/PI;" RT= ";RT*180/PI
3555 GOSUB 8470
3556 INPUT" autre angle horaire = z; arrêt = a",M$
3560 O1P1=L COS (F)*SIN (TT)/-COS (TT+DG):XP1O1=O1P1:YP1O1=0:HI=V
3570 GOTO 9000
3580 REM HH>pi/2-dg quand j<f le cadran , si h>RT , peut être éclairé car le s
oleil peut se trouver au-dessus du cadran.
3590 J1=ATN (-COS (DG+TT)/TAN (I)):SU=SIN (J1)/COS (I)
3600 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
3603 GOSUB 8220:REM CALCUL RT TG RT = (1/TG I) * (-COS (TT+ DG))
3605 IF H>RT THEN 3660
3606 PRINT "cadran non éclairé: h<RT";"H= ";H*180/PI;" RT= ";RT*180/PI:PRINT #1
," CADRAN NON CLAIR: H<RT";"h= ";H*180/PI;" RT= ";RT*180/PI
3608 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
3610 GOSUB 8470
3630 INPUT" autre angle horaire = z; arrêt = a",M$
3640 IF M$ = "z" THEN 3050
3650 GOTO 9050
3657 IF M$ = "z" THEN 3050
3658 GOTO 9050
3660 HI=ATN (SIN (F-J)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG+HH)+SIN (F-J)*SIN (HH)*
COS (V)))
3665 IF HI < 0 THEN HI=HI+PI
3670 O1G=L*SIN (F)*SIN (V)/(SIN (J)*SIN (HI-V))
3680 GP1=-L*SIN (F-J)*COS (DG)*SIN (H)*SU/(SIN (J)*SIN (H-J1)*COS (DG+TT)*SIN (H
I-V))
3690 O1P1=-O1G+GP1
3700 XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI):YP1S=-YP1O1+O1S
3710 PRINT "Quand Hi>pi/2, cos Hi est < 0 et yP1O1 est < 0: à tracer vers le bas
sur SO')"
3715 PRINT #1,"Quand Hi>pi/2, cos Hi est < 0 et yP1O1 est < 0: à tracer vers le
bas sur SO')"
3720 GOTO 9000

4300 REM IDWLE, IDELW
4302 PRINT " IDWLE, IDELW j<f":PRINT #1, "IDWLE, IDELW j<f"
4310 IF TT>PI/2+DG OR TT=PI/2+DG THEN 4370
4315 REM TT<pi/2+dg le soleil est toujours devant le cadran
4320 HI=ATN (-SIN (F-J)*SIN (HH)*SIN (V)/(-SIN (F)*COS (DG-HH)+SIN (F-J)*SIN (HH
)*COS (V)))
4325 IF HI < 0 THEN HI=HI+PI
4330 J1=ATN (COS (DG-TT)/TAN (I)):SU=SIN (J1)/COS (I): REM su = sin u
4335 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
4340 O1G=L*SIN (F)*SIN (V)/(SIN (J)*SIN (V+HI))
4345 GP1=L*SIN (F-J)*COS (DG)*SIN (H)*SU/(SIN (J1+H)*SIN (J)*COS (DG-TT)*SIN (V+
HI))
4350 O1P1=O1G-GP1:XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI):REM en partant de O'
4355 YP1S=- YP1O1+O1S:REM en partant de S (on a vu que O1S=l*sin f / sin j)
4360 GOTO 9000
4370 IF TT>PI/2+DG THEN 4430
4380 REM TT=pi/2+dg
4381 GOSUB 8280:REM tg RT = (1/tg i) * (-cos (TT- dg))
4382 IF H>RT THEN 4390
4383 PRINT "cadran non éclairé: h<RT"; H= ";h*180/pi;" RT= ";RT*180/pi;print #1
," CADRAN NON CLAIR: H<RT"; h= ";H*180/PI;" RT= ";RT*180/PI
4385 INPUT" autre angle horaire = z; arrêt = a",M$
4386 IF M$ = "z" THEN 3050
4388 GOTO 9050
4390 HI=ATN (-SIN (F-J)*SIN (HH)*SIN (V)/(-SIN (F)*COS (DG-HH)+SIN (F-J)*SIN (H
H)*COS (V)))
4395 IF HI < 0 THEN HI=HI+PI
4400 O1T2=L*COS (F)/COS (J):O1P1=L*SIN (V)*COS (F)/(COS (J)*SIN (V+HI)):O1S=L*SI
N (F)/SIN (J)
4410 XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI):YP1S=O1S-YP1O1
4420 GOTO 9000
4425 REM TT>pi/2+dg
4430 IF HH>PI/2+DG OR HH=PI/2+DG THEN 4540
4440 REM TT>pi/2+dg et HH < pi/2+dg
4445 J1=ATN (-COS (TT-DG)/TAN (I)):SU=SIN (J1)/COS (I)
4450 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
4455 GOSUB 8280: TG RT = (1/TG I) * (-COS (TT- DG))
4457 IF H>RT THEN 4490
4460 PRINT "cadran non éclairé: h<RT"; H= ";h*180/pi;" RT= ";RT*180/pi:print #1,
" CADRAN NON CLAIR: H<RT"; h= ";H*180/PI;" RT= ";RT*180/PI
4461 GOSUB 8470
4462 INPUT" autre angle horaire = z; arrêt = a",M$
4465 IF M$ = "z" THEN 3050
4470 GOTO 9050
4490 HI=ATN (-SIN (F-J)*SIN (HH)*SIN (V)/(-SIN (F)*COS (DG-HH)+SIN (F-J)*SIN (HH
)*COS (V)))
4495 IF HI < 0 THEN HI=HI+PI
4500 O1G=L*SIN (F)*SIN (V)/(SIN (J)*SIN (V+HI))
4510 GP1= L*SIN (F-J)*COS (DG)*SIN (H)*SU/(-SIN (H-J1)*SIN (J)*COS (TT-DG)*SIN (
V+HI))
4520 O1P1=O1G-GP1:XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI): YP1S=- YP1O1+O1S
4530 GOTO 9000
4540 IF HH>PI/2+DG THEN 4580
4550 REM HH = pi/2+dg
4560 O1P1=L COS (F)*SIN (TT)/-COS (TT-DG):XP1O1=O1P1:YP1O1=0:HI=PI-V
4570 GOTO 9000
4580 REM HH>pi/2+dg quand j<f le cadran , si h>RT , peut être éclairé car le s
oleil peut se trouver au-dessus du cadran.
4590 J1=ATN (-COS (TT-DG)/TAN (I):SU=SIN (J1)/COS (I)
4600 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
4605 GOSUB 8280:REM RT = (1/TG I) * (-COS (TT- DG))
4610 IF H>RT THEN 4660
4615 PRINT "cadran non éclairé: h<RT"; H= ";h*180/pi;" RT= ";RT*180/pi:print #1,
" CADRAN NON CLAIR: H<RT"; h= ";H*180/PI;" RT= ";RT*180/PI
4617 GOSUB 8480
4618 GOSUB 8470
4620 INPUT" autre angle horaire = z; arrêt = a",M$
4625 IF M$ = "z" THEN 3050
4630 GOTO 9050
4660 HI=ATN (SIN (F-J)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG+HH)-SIN (F-J)*SIN (HH)*
COS (V)))
4665 IF HI < 0 THEN HI=HI+PI
4670 O1G=L*SIN (F)*SIN (V)/-(SIN (J)*SIN (HI+V))
4680 GP1=L*SIN (F-J)*COS (DG)*SIN (H)*SU/(SIN (J)*SIN (H-J1)*COS (-DG+TT)*SIN (H
I+V))
4690 O1P1=-O1G+GP1
4700 XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI):YP1S=YP1O1+O1S
4710 PRINT "Quand Hi>pi/2, cos Hi est < 0 et yP1O1 est < 0: à tracer vers le bas
sur SO')"
4715 PRINT #1,"Quand Hi>pi/2, cos Hi est < 0 et yP1O1 est < 0: à tracer vers le
bas sur SO')"
4720 GOTO 9000
5990 REM cadrans inclinés inclinant (face tournée vers le nord)
6000 REM calcul du style
6005 O1L=L*SIN (F)/COS (I):AO2=L*COS (F)*SIN (DG):O1K=AO2:O1A=L*SIN (F)
6007 KT1=O1L:O1S=L*SIN (F)/(COS (I)*SIN (V))
6010 TT1=L*SIN (I)*(COS (F)*COS (DG)+SIN (F)*TAN (I)):KT=KT1-TT1
6015 OT=L*COS (F)*COS (DG)*COS (I)+L*SIN (F)*SIN (I):O1T=SQR(L^2-OT^2)
6017 AS=L*SIN:(F)*TAN (I)/COS (DG)
6020 PRINT "AO''= ";AO2;" O'K = AO'' ";" O'A = ";O1A;" O'L = KT' = ";O1L;" T
T' = ";TT1
6022 PRINT " KT = KT' + TT' = ";KT;" OT = ";OT;" O'T = ";O1T;" O'S = ";O1S;"
AS = ";AS
6025 PRINT#1, "AO''= ";AO2;" O'K = AO'' ";" O'A = ";O1A;" O'L = KT' = ";O1L;"
TT' = ";TT1
6027 PRINT #1," KT = KT' + TT' = ";KT;" OT = ";OT;" O'T = ";O1T;" O'S = ";O1
S;" AS = ";AS
6030 PRINT "j = ";JJ;"° v = "VV";"":print #1, " J = ";jj;" V = "vv";"°"
6050 INPUT "angle horaire choisi en ° ?",THT:T=THT*PI/180
6053 PRINT "Angle horaire choisi = ";THT:PRINT#1 ,"ANGLE HORAIRE CHOISI = ";THT
6055 INPUT "déclinaison solaire en °?",DSS:DS=DSS*PI/180:PRINT "déclinaison = ";
DSS: PRINT 1,"déclinaison = ";DSS
6057 REM condition de validité de la déclinaison pour qu'il y ait passage sur le
cadran
6060 GOSUB 7670: IF DMM=1 THEN 6080
6065 PRINT "astre constamment sur ou sous le cadran: ni lever ni coucher. Dans l
'hémisph nord on ne retient que les déclinaisons positives"
6070 PRINT #1, "astre constamment sur ou sous le cadran: ni lever ni coucher. Da
ns l'hémisph nord on ne retient que les déclinaisons positives"
6075 IF DS<0 THEN 9050
6080 INPUT "déclinaison confirmée:appuyer sur m, autre déclinaison sur d,arrêt s
ur a: m, d ou a?",J$
6085 IF J$="a" THEN 9050
6090 IF J$ = "m" THEN 6112
6100 INPUT "entrer la nouvelle déclinaison",DSS:DS=DSS*PI/180
6105 REM heures de passages sur le cadran
6110 REM arc semi-diurne
6112 IF DS>PI/2-F OR DS=PI/2-F THEN PRINT "astre en permanence sur l'horizon":P
RINT #1, "astre en permanence sur l'horizon": GOTO 6180:REM pas de calcul de R n
i asd

6114 gosub 7000: rem passages dans le plan du cadran calcul de R
6116 if pdr=1 then 6180

6118 ASD=-TAN(DS)*TAN(F):ASD =ATN (SQR(1-ASD^2)/ASD)
6120 IF ASD<0 THEN ASD=ASD+PI
6125 PRINT "asd = ";ASD*180/PI:PRINT #1,"asd = ";ASD*180/P
6130 IF ASD>T THEN 6180
6140 PRINT "Le soleil est sous l'horizon: autres paramètres = p, arrêt = a"
6150 INPUT "p ou a ?",K$
6160 IF K$ = "a" THEN 9050
6170 GOTO 6050
6180 GOSUB 8000:REM calcul de HH, TT et h

6182 rem calcul de R par le cosinus
6185 gosub 8765

6190 INPUT "IIWLW, IIELE = 1; IIWLE, IIELW = 2 : 1 ou 2",NN
6195 IF NN=2 THEN 6450:REM vers IIWLE, IIELW
6197 REM IIWLW, IIELE
6199 PRINT " IIWLW, IIELE ":PRINT #1, " IIWLW, IIELE "
6210 IF TT<PI/2+DG OR TT=PI/2+DG THEN 6350
6215 IF HH<PI/2+DG OR HH=PI/2+DG THEN 6285
6230 REM TT>pi/2+dg HH>pi/2+dg
6240 HI=ATN (SIN (F+J)*SIN (HH)*SIN (V)/(-SIN (F)*COS (-DG+HH)+SIN (F+J)*SIN (HH
)*COS (V)))
6245 IF HI < 0 THEN HI=HI+PI
6250 J1=ATN (-COS (-DG+TT)/TAN (I)):SU=SIN (J1)/COS (I): REM su = sin u
6255 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
6260 O1G=L*SIN (F)*SIN (V)/(SIN (J)*SIN (V-HI))
6265 GP1=L*SIN (F+J)*COS (DG)*SIN (H)*SU/- (SIN (J1+H)*SIN (J)*COS (-DG+TT)*SIN
(V-HI))
6270 O1P1=O1G-GP1:XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI):REM en partant de O'
6275 YP1S=- YP1O1+O1S:REM en partant de S (on a vu que O1S=L*SIN (F)/(COS (I)*SI
N (V))
6280 GOTO 9000
6285 IF HH<PI/2+DG THEN 6305
6290 REM TT> pi/2+dg HH=pi/2+dg
6295 XP1O1=L*COS (F)*SIN (TT)/-COS (TT-DG):YP1O1=0:YP1S=O1S:HI=V
6300 GOTO 9000
6305 REM TT>pi/2+dg HH<pi/2+dg soleil devant le cadran car TT>pi/2+dg
6310 HI=ATN (-SIN (F+J)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG-HH)-SIN (F+J)*SIN (HH)*
COS (V)))
6313 IF HI < 0 THEN HI=HI+PI
6315 J1=ATN (-COS (-DG+TT)/TAN (I)):SU=SIN (J1)/COS (I): REM su = sin u
6320 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
6325 O1G=L*SIN (F)*SIN (V)/(SIN (J)*SIN (-V+HI))
6330 GP1=-L*SIN (F+J)*COS (DG)*SIN (H)*SU/(SIN (J1+H)*SIN (J)*COS (-DG+TT)*SIN (
-V+HI))
6335 O1P1=-O1G+GP1:XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (PI-HI):REM en partant de
O'
6340 YP1S=- YP1O1+O1S:REM en partant de S
6345 GOTO 9000
6350 IF TT<PI/2+DG THEN 6385
6353 REM TT=pi/2+dg HH<pi/2+dg
6373 HI=ATN (-SIN (F+J)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG-HH)-SIN (F+J)*SIN (HH)*
COS (V)))
6375 IF HI < 0 THEN HI=HI+PI
6377 O1T2=(L*COS (F)+L*SIN (F)/TAN (J))/(COS (J)-L*SIN (F)/SIN (J))
6379 O1P1=O1T2*SIN (V)/SIN (HI-V)
6381 XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (PI-HI):YP1S=O1S+YP1O1
6383 REM le point P' (ou P1) étant sur ZZ' et ZZ' sous O'K, P' est sous l'horiz
ontale O'K.
6385 REM TT < pi/2+d HH < pi/2 +d le soleil peut être sur ou sous le cadran
d'où condition RT
6387 GOSUB 8340:REM TG RT = (1/TG I) * COS (DG-TT)
6390 IF H>RT THEN 6400
6393 PRINT "cadran non éclairé: h<RT"; H= ";h*180/pi;" RT= ";RT*180/pi:print #1,
"CADRAN NON CLAIR: H<RT"; h= ";H*180/PI;" RT= ";RT*180/PI
6394 GOSUB 8470
6395 INPUT" autre angle horaire = z; arrêt = a",M$
6398 IF M$ = "z" THEN 6050
6399 GOTO 9050
6400 HI=ATN (SIN (F+J)*SIN (HH)*SIN (V)/(-SIN (F)*COS (DG-HH)+SIN (F+J)*SIN (HH)*
COS (V)))
6402 IF HI<0 THEN HI=HI+PI
6405 J1=ATN (COS (DG-TT)/TAN (I)):SU=SIN (J1)/COS (I): REM su = sin u
6410 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
6415 O1G=L*SIN (F)*SIN (V)/(SIN (J)*SIN (-V+HI))
6420 GP1=L*SIN (F+J)*COS (DG)*SIN (H)*SU/(SIN (-J1+H)*SIN (J)*COS (-DG+TT)*SIN (
-V+HI))
6425 O1P1=-O1G+GP1:XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (PI-HI):REM en partant de
O'
6430 YP1S=YP1O1+O1S:REM en partant de S 6435 goto 9000
6450 REM INWLE INELW
6451 PRINT " INWLE INELW":PRINT #1," INWLE INELW"
6460 IF TT<PI/2-DG OR TT=PI/2-DG THEN 6590
6465 IF HH<PI/2-DG OR HH=PI/2-DG THEN 6515
6470 REM TT>pi/2-dg HH>pi/2-dg cadran éclairé sans condition
6475 HI=ATN (-SIN (F+J)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG+HH)+SIN (F+J)*SIN (HH)
*COS (V)))
6477 IF HI < 0 THEN HI=HI+PI
6480 J1=ATN (-COS (DG+TT)/TAN (I)):SU=SIN (J1)/COS (I): REM su = sin u
6485 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
6490 O1G=L*SIN (F)*SIN (V)/(SIN (J)*SIN (V+HI))
6495 GP1=-L*SIN (F+J)*COS (DG)*SIN (H)*SU/(SIN (J1+H)*SIN (J)*COS (DG+TT)*SIN (V
+HI))
6500 O1P1=O1G-GP1:XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (HI):REM en partant de O'
6505 YP1S=- YP1O1+O1S:REM en partant de S
6510 GOTO 9000
6515 IF HH<PI/2-DG THEN 6535
6520 REM TT> pi/2-dg HH=pi/2-dg
6525 XP1O1=L*COS (F)*SIN (TT)/-COS (TT+DG):YP1O1=0:YP1S=O1S:HI=V
6530 GOTO 9000
6535 REM TT>pi/2-dg HH<pi/2-dg
6540 HI=ATN (-SIN (F+J)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG+HH)+SIN (F+J)*SIN (HH)
*COS (V)))
6543 IF HI < 0 THEN HI=HI+PI
6545 J1=ATN (-COS (DG+TT)/TAN (I)):SU=SIN (J1)/COS (I): REM su = sin u
6550 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
6555 O1G=- L*SIN (F)*SIN (V)/(SIN (J)*SIN (V+HI))
6560 GP1=L*SIN (F+J)*COS (DG)*SIN (H)*SU/(SIN (- J1+H)*SIN (J)*COS (DG+TT)*SIN (
V+HI))
6565 O1P1=-O1G+GP1:XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (PI-HI):REM en partant de
O'
6570 YP1S=- YP1O1+O1S:REM en partant de S (on a vu que O1S=l*sin f / sin j)
6575 GOTO 9000
6590 IF TT<PI/2-DG THEN 6625
6595 REM TT=pi/2-dg HH<pi/2-dg
6600 HI=ATN (-SIN (F+J)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG+HH)+SIN (F+J)*SIN (HH)
*COS (V)))
6603 IF HI < 0 THEN HI=HI+PI
6605 O1T2=(L*COS (F)+L*SIN (F)/TAN (J))/COS (J)-L*SIN (F)/SIN (J)
6610 O1P1=-O1T2*SIN (V)/SIN (HI-V)
6615 XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (PI-HI):YP1S=O1S+YP1O1
6620 REM le point P' (ou P1) étant sur ZZ' et ZZ' sous O'K, P' est sous l'horiz
ontale O'K.
6623 GOTO 9000
6625 REM TT < pi/2-dg HH < pi/2 -dg le soleil peut être sur ou sous le cadran
d'où condition RT
6627 GOSUB 8400:REM tg RT = (1/tg i) * cos (dg+TT)
6628 IF H>RT THEN 6634
6629 GOSUB 8480:PRINT "cadran non éclairé: h<RT"; H= ";h*180/pi;" RT= ";RT*180/p
i:print #1,"CADRAN NON CLAIR: H<RT"; h= ";H*180/PI;" RT= ";RT*180/PI
6630 INPUT" autre angle horaire = z; arrêt = a",M$
6631 IF M$ = "z" THEN 6050
6632 GOSUB 8470
6634 HI=ATN (-SIN (F+J)*SIN (HH)*SIN (V)/(SIN (F)*COS (DG+HH)+SIN (F+J)*SIN (HH)
*COS (V)))
6635 IF HI<0 THEN HI=HI+PI
6665 PRINT "j' = ";J1*180/PI;" sin u = ";SU:PRINT #1, "j' = ";J1*180/PI;" sin
u = ";SU
6670 O1G=-L*SIN (F)*SIN (V)/(SIN (J)*SIN (V+HI))
6675 GP1=-L*SIN (F+J)*COS (DG)*SIN (H)*SU/(SIN (-J1+H)*SIN (J)*COS (DG+TT)*SIN (
V+HI))
6680 O1P1=-O1G+GP1:XP1O1=O1P1*SIN (HI):YP1O1=O1P1*COS (PI-HI):REM en partant de
O'
6685 YP1S=YP1O1+O1S:REM en partant de S (on a vu que O1S=l*sin f / sin j)
6687 REM quand Hi<pi/2, cos Hi<0 et yP1O1 <0 (à tracer vers le bas sur SO')
6690 GOTO 9000



7000 rem sous-programme: heures d'apparition et disparition de l'astre sur le plan du cadran
7010 NMUW=1/(TAN(DG)*SIN (J)):NMUW= ATN (NMUW):if NMUw<0 then NMUw=NMUW+pi
7030 REM calcul de la déclinaison dl pour laquelle R = pi/2
7040 IF KADO=1 THEN DL=SIN (NMUW)*SIN (J-F):DL=ATN (SQR(1-DL^2)/DL):PRINT "R = p
i/2 pour dl = ";DL*180/PI: PRINT #1,"R = pi/2 pour dl = ";DL*180/PI:GOTO 7050
7042 IF KADO = 2 THEN DL=SIN (NMUW)*SIN (F-J):DL=ATN (SQR(1-DL^2)/DL):PRINT "R =
pi/2 pour dl = ";DL*180/PI: PRINT #1,"R = pi/2 pour dl = ";DL*180/Pi:GOTO 7050
7045 DL=SIN (NMUW)*SIN (F+J):DL=ATN (SQR(1-DL^2)/DL)
7047 PRINT "R = pi/2 pour dl = ";DL*180/PI: PRINT #1,"R = pi/2 pour dl = ";DL*18
0/PI
7050 REM calcul de R sin R=sin NMUw sin (j-f)/cos d
7052 if kado=1 then R=SIN (NMUW)*SIN (J-F)/COS (DS):R=ATN (R/SQR(1-R^2)):goto 7070:REM sinus par l'atn
7054 if kado=2 then R=SIN (NMUW)*SIN (f-j)/COS (DS):R=ATN (R/SQR(1-R^2)):print "R = ";R:goto 7070
7060 R=SIN (NMUW)*SIN (J+F)/COS (DS):R=ATN (R/SQR(1-R^2))
7070 IF CADI=1 THEN 7145
7075 rem cadi = 2, cas des inclinants
7080 IF J>PI/2-F THEN 7090
7085 IF DS < DL THEN RNR=R*180/pi:GOTO 7153
7086 R = PI-R
7087 RNR=R*180/pi:GOTO 7153
7090 IF DS > DL THEN RNR=R*180/pi:GOTO 7153
7091 R = PI-R
7092 RNR=R*180/pi:GOTO 7153
7145 cadi =1, cas des déclinants j>f et j<f
7150 IF ABS (DS)<DL THEN RNR=R*180/pi:GOTO 7153
7151 R = PI-R
7152 RNR=R*180/pi
7153 print "R = ";RNR:print #1,"R = ";RNR
7155 IF KADO=2 THEN 7170
7160 IF KADO = 3 THEN 7175
7165 A=COS (DS):B=-TAN (J-F)*SIN (DS):C=-TAN (J-F)/TAN (R):GOTO 7190: REM kado=1
7170 A=COS (DS):B=+TAN (F-J)*SIN (DS):C=-TAN (F-J)/TAN (R):GOTO 7190
7175 A=- COS (DS):B=-TAN (J+F)*SIN (DS):C=TAN (J+F)/TAN (R)
7180 REM on prend tad pour l'angle horaire d'apparition ou de disparition et on
pose tg (tad/2)=k
7185 REM résolution ensuite de l'équation (A-B) k²+2 kC+A+B=0 2 racines R1
et R2
7190 DELTA=4*C^2-4*(A-B)*(A+B):IF DELTA>0 OR DELTA = 0 THEN 7210
7200 PRINT "delta < 0: il n'y a pas de racines, astre sur l'horizon:print #1, "
il n'y a pas de racines, astre sur l'horizon ":pdr=1:return
7210 R1=(-2*C+SQR (DELTA))/(2*(A-B)):R11=2*ATN (R1)
7220 TADH=2*ATN (R1)*180/pi
7222 if TADH<0 then TADH=TADH+180
7223print "angle de passage R1 = ";tadh
7224 TADHAN=TADH
7225 TADH=TADH/15
7230 R2=(-2*C-SQR (DELTA))/(2*(A-B)):R22=2*ATN (R2)
7240 TADHH=2*ATN (R2)*180/pi
7242 if TADHH<0 then TADHH=TADHH+180
7243 print "angle de passage R2 = ";tadhh
7244 TADHHAN=TADHH
7245 TADHH=TADHH/15
7250 if TADHHAN<TADHAN then 7270
7260 PGA=TADHHAN:PPA=TADHAN:goto 7280
7270 PGA=TADHAN:PPA=TADHHAN
7280 return





7650 DM=PI/2-(J-F):IF ABS(DS)<DM THEN DMM=1:RETURN:IL Y A DES LEVERS ET COUCHERS
7653 DMM=0:RETURN:REM il n'y a pas de levers ni de couchers j>f
7660 DM=PI/2-(F-J):IF ABS(DS)<DM THEN DMM=1:RETURN:IL Y A DES LEVERS ET COUCHERS
7663 DMM=0:RETURN:REM il n'y a pas de levers ni de couchers j<f
7670 DM=ABS(PI/2-(F+J)):IF ABS(DS)<DM THEN DMM=1:RETURN:IL Y A DES LEVERS ET COU
CHERS
7673 DMM=0:RETURN:REM il n'y a pas de levers ni de couchers inclinants

8000 REM calcul de HH angle tabulaire horizontal
8100 HH=ATN(SIN (F)*TAN (T)):IF HH<0 THEN HH=HH+PI
8110 PRINT "angle tabulaire = ";HH*180/PI:PRINT #1,"angle tabulaire = ";HH*180/P
I
8120 REM calcul de l'azimut TT
8130 TT=ATN(SIN (T)/(COS (T)*SIN (F)-TAN (DS)*COS (F))):IF TT<0 THEN TT=TT+PI
8135 PRINT "azimut = ";TT*180/PI:PRINT #1,"azimut = "TT*180/PI
8140 REM calcul de la hauteur (h<pi/2)
8150 SS= COS (DS)*COS (F)*COS (T)+SIN (DS)*SIN (F):H=ATN(SS/SQR(1-SS^2))
8155 PRINT "hauteur = "; H*180/PI:PRINT #1,"hauteur = ";H*180/PI
8170 RETURN
8200 REM calcul de RTet angle horaire correpondant en faisant RT = h
8210 REM IDWLW j > f et j < f
8220 RT= (1/TAN(I)) *-COS (TT+DG):RT=ATN (RT):PRINT "RT= ";RT*180/PI:PRINT #1, "
RT= ";RT*180/PI
8260 RETURN
8270 REM IDWLE j > f et j < f
8280 RT= (1/TAN(I))*-COS (TT-DG):RT=ATN (RT):PRINT "RT= ";RT*180/PI:PRINT #1, "R
T= ";RT*180/PI
8320 RETURN
8330 REM INWLW
8340 RT= (1/TAN(I))*COS (DG-TT):RT=ATN (RT):PRINT "RT= ";RT*180/PI:PRINT #1, "RT
= ";RT*180/PI
8380 RETURN
8390 REM INWLE
8400 RT= (1/TAN(I))*COS (TT+DG):RT=ATN (RT):PRINT "RT= ";RT*180/PI:PRINT #1, "RT
= ";RT*180/PI
8460 RETURN
8470 RTH=(SIN(RT)-SIN(DS)*SIN (F))/(COS (DS)*COS(F)): RTH = ATN (SQR(1-RTH^2)/RT
H)
8480 RTH=RTH*180/PI:PRINT "heure de passage sur le cadran = ";RTH, "°":PRINT #1,
"heure de passage sur le cadran = ";RTH, "°"
8490 RETURN
8500 PRINT "par le sinus, t = "; TRT*180/PI; " ou ";TRT2*180/PI: PRINT #1,"par
le sinus, t = "; TRT*180/PI; " ou ";TRT2*180/PI
8510 TTRTT = (SIN (RT)-SIN (DS)*SIN (F))/(COS (F)*COS (DS)):TTRTT=ATN (SQR(1-TTR
TT^2)/TTRTT)
8515 IF TTRTT<0 THEN TTRTT=TTRTT+PI
8520 PRINT "par le cosinus, t = "; TTRTT*180/PI:PRINT #1,"par le cosinus, t =
"; TTRTT*180/PI
8530 RETURN



8540 rem verification de l'angle R par le cosinus j > f
8550 cosmr1 = cos (j – f)*sin (ds) + sin (j – f)*cos (ds)*cos (R11):AAA=cosmr1
8560 cosmr2 = cos (j – f)*sin (ds) + sin (j – f)*cos (ds)*cos (R22):BBB=cosmr2
8570 cosmr1=ATN (SQR(1-cosmr1^2)/cosmr1) :IF COSMR1<0 THEN COSMR1= COSMR1+PI
8580 cosmr2=ATN (SQR(1-cosmr2^2)/cosmr2) :IF COSMR2<0 THEN COSMR2= COSMR2+PI
8590 sinmr1= sin (cosmr1)
8600 sinmr2= sin (cosmr2)
8610 cosr2= (cos (j - f) - BBB*sin (ds)) / (sinmr2* cos (ds))
8620 cosr1= (cos (j - f) - AAA*sin (ds)) / (sinmr1* cos (ds))
8630 cosr1= ATN (SQR(1-cosr1^2)/cosr1) :IF COSR1<0 THEN COSR1= COSR1+PI
8640 cosr2= ATN (SQR(1-cosr2^2)/cosr2) :IF COSR2<0 THEN COSR2= COSR2+PI
8650 print "R par le cosinus = ";cosr1*180/pi;" pour TADHAN = ";TADHAN: print #1,"R par le cosinus = ";cosr1*180/pi;" pour TADHAN = ";TADHAN
8660 print "R par le cosinus = ";cosr2*180/pi;" pour TADHHAN = ";TADHHAN: print #1,"R par le cosinus = ";cosr2*180/pi;" pour TADHHAN = ";TADHHAN
8670 return
8680 rem ID j < f
8695 cosmr1 = cos (f - j)*sin (ds) - sin (f - j)*cos (ds)*cos (R11):AAA=cosmr1
8700 cosmr1=ATN (SQR(1-cosmr1^2)/cosmr1) :IF cosMR1<0 THEN cosMR1=cosMR1+PI
8705 cosmr2 = cos (f - j)*sin (ds) - sin (f - j)*cos (ds)*cos (R22):BBB=cosmr2
8710 cosmr2=ATN (SQR(1-cosmr2^2)/cosmr2):IF COSMR2<0 THEN COSMR2= COSMR2+PI
8715 sinmr1= sin (cosmr1): sinmr2=sin (cosmr2)
8720 cosr1= (cos (f - j) – AAA*sin (ds)) / (sinmr1* cos (ds))
8725 cosr2= (cos (f - j) – BBB*sin (ds)) / (sinmr2* cos (ds))
8730 cosr1= ATN (SQR(1-cosr1^2)/cosr1):cosr2= ATN (SQR(1-cosr2^2)/cosr2)
8735:IF COSR1<0 THEN COSR1=COSR1+PI
8740:IF COSR2<0 THEN COSR2= COSR2+PI
8745 print "R par le cosinus = ";cosr1*180/pi;" pour TADHAN = ";TADHAN: print #1,"R par le cosinus = ";cosr1*180/pi;" pour TADHAN = ";TADHAN
8750 print "R par le cosinus = ";cosr2*180/pi;" pour TADHHAN = ";TADHHAN: print #1,"R par le cosinus = ";cosr2*180/pi;" pour TADHHAN = ";TADHHAN
8755 return

8760 rem inclinants
8765 cosmr1 = - cos (f + j)*sin (ds) + sin (f + j)*cos (ds)*cos (R11):AAA=cosmr1
8770 cosmr2 = - cos (f + j)*sin (ds) + sin (f + j)*cos (ds)*cos (R22):BBB=cosmr2
8775 mr1=ATN (SQR(1-AAA^2)/AAA) :IF MR1<0 THEN MR1=MR1+PI
8780 mr2=ATN (SQR(1-BBB^2)/BBB) :IF MR2<0 THEN MR2=MR2+PI
8785 sinmr1= sin (mr1): sinmr2=sin (mr2)
8375 cosr1= (cos (f + j) + AAA*sin (ds)) / (sinmr1* cos (ds)):cs1=cosr1
8790 cosr2= (cos (f + j) + BBB*sin (ds)) / (sinmr2* cos (ds)):cs2=cosr2
8795 cosr1= ATN (SQR(1-cs1^2)/cs1): cosr2= ATN (SQR(1-cs2^2)/cs2)
8800 if cosr1<0 then cosr1=cosr1+pi
8805 if cosr2 <0 then cosr2=cosr2+pi
8810 print "R par le cosinus = ";cosr1*180/pi;" pour TADHAN = ";TADHAN: print #1,"R par le cosinus = ";cosr1*180/pi;" pour TADHAN = ";TADHAN
8815 print "R par le cosinus = ";cosr2*180/pi;" pour TADHHAN = ";TADHHAN: print #1,"R par le cosinus = ";cosr2*180/pi;" pour TADHHAN = ";TADHHAN
8820 return


9000 PRINT "Hi = ";HI*180/PI;" O'P' = ";INT(100*O1P1)/100; " xP'(O') = ";INT(1
00*XP1O1)/100;" yP'(O') = "; INT (YP1O1*100)/100;" yP'(s) = ";INT(YP1S*100)/10
0
9010 PRINT #1,"Hi = ";HI*180/PI;" O'P' = ";INT(100*O1P1)/100; " xP'(O') = ";IN
T(100*XP1O1)/100;" yP'(O') = "; INT(YP1O1*100)/100;" yP'(s) = ";INT(YP1S*100)/
100
9015 PRINT "j = ";J*180/PI;" V = "; V*180/PI:PRINT #1," j = ";J*180/PI;" V =
"; V*180/PI:PRINT:PRINT #1,

9020 if cadi = 1 then YM = l*sin (f + h) / sin (j + h): goto 9025
9022 YM = l*sin (f - h) / sin (j + h)
9025 print "Y (O') à midi = ";YM: print #1,"Y (O') à midi = ";YM

9030 INPUT "Arrêt = a; autre angle horaire = p: a ou p, ?", A$
9040 IF A$ = "p" THEN 9060
9050 END
9060 IF CADI = 1 THEN IF KADO = 1 THEN 160
9080 IF CADI = 1 THEN IF KADO = 2 THEN 3050
9090 GOTO 6050

Géométrie des cadrans solaires inclinés

Travaux personnels en gnomonique

Les cadrans solaires de Jean Pakhomoff