Programme informatique GW Basic

de construction des cadrans solaires

bifilaires et à polos.

4è partie (4/4)

par Jean Pakhomoff

gnomoniste à Marseille

 

2960 GOSUB 1450:REM Azimuts lever et coucher

2970 PRINT #1,"Si horizontal à l'équateur HV et H sont en cm. à partir de la mér

idienne et parallèles à elle."

2980 GOSUB 1122:GOSUB 1125:REM affichage

2990 FOR I%=1 TO 48:REM de 1/4 en 1/4 d'heure

3000 GOSUB 1960:REM azimut

3010 GOSUB 2010:REM hauteur

3020 GOSUB 2090:REM x et y

3030 GOSUB 2040:REM lh tabulaire

3040 IF F<PI/2#-.00000000000001# THEN 3070

3050 HV=ATN(TAN(R)*AC/AB):IF HV<0 THEN HV=HV+PI

3060 HV=HV*180#/PI:GOTO 3150

3070 IF F>.000000000001# THEN GOTO 3100:REM si f n'est pas 0 aller à....

3080 HV=AC*TAN(R):H=AB*TAN(R):IF HV>999# THEN HV=.001#:H=.001#

3090 GOTO 3150

3100 IF HV=RRR THEN GOTO 3150:REM cas où Þ'=90°.

3110 HV=ATN(X/(Y+AB/TAN(F))):IF HV<0 THEN HV=HV+PI

3120 HV=HV*180#/PI:REM <=>tghv=tgh(Þ')=tgh(Þ)*AC/AB

3130 IF X>LAR THEN X=.001#

3140 IF ABS(Y)>LONG THEN Y=.001#

3150 PRINT #1, USING ZZZ$;RRR,H,AA,HT,X,Y,YO,HV

3160 RRR=RRR+3.75#:R=RRR*PI/180#

3170 IF R>ASDD THEN 3190

3180 NEXT I%

3190 IF ASDD=PI THEN PRINT #1,"Pour cette D le soleil est constamment sur l'hori

zon"

3200 RRR=RR:R=RO

3205 PRINT #1,"Coordonnées du midi solaire: X = 0 Y(A) =";AB/TAN(PI/2#-F+D);"

cm.":REM AZIMUT=0 HAUTEUR=90-f+D

3206 IF ASDD=PI THEN PRINT #1,"Coordonnées du minuit solaire: X = 0 Y(A) =";-A

B/TAN(-PI/2#+F+D);" cm.":REM Azimut =180°et hauteur=D+Þ-90

3208 INPUT "arrêt: appuyez sur a; autre déclinaison sur d: a ou d?",DC$

3209 IF DC$="d" THEN 2910

3210 GOTO 4670

3220 PRINT #1,"Bifilaire vertical déclinant ou méridional"

3230 IF F<PI/2#-.00000000000001# THEN IF F>.000000000001# THEN GOTO 3310:REM si

f<90°et si f n'est pas 0 aller à 3310

3240 PRINT #1,"Cas du pôle ou de l'équateur":PRINT"Cas du pôle ou de l'équateur"

:IF ELISABETHPAKHOMOFF$="p" THEN AB=LSTC:AC=AB:GOTO 3290

3250 INPUT "Choisissez AB et AC quelconques avec AB<AC: AB et AC ?",AB,AC

3260 IF AB>AC THEN PRINT"AB doit être < AC: recommencez":GOTO 3250

3270 PRINT #1,"AB =";AB;" cm. AC =";AC;" cm.":REM Au pôle les lignes horaires

sont parallèles à la ligne méridienne et situées à la distance x=AC*sint/cos(t+

ou-dg) de celle-ci selon le cas de figure.(T=H=t).

3280 REM A l'équateur elles partent du pied A du gnomon et répondent à la rela

tion tgHV=tgH*AC/AB ou encore tgHV=(AC/AB)*sinT/(cosÙg*tgh) où T est l'azimut et

h la hauteur.

3290 GOSUB 1590

3300 GOTO 3320

3310 PRINT #1,"Les lignes horaires tabulaires partent du point D éloigné de ";AB

*TAN(F);" cm. du point A pied du gnomon AB (vers le Zénith)"

3320 IF HH$="w" THEN AWM=PI/2#-K:AWS=PI/2#+K:GOTO 3340

3330 AWM=PI/2#+K:AWS=PI/2#-K:REM pour le calcul de la décl. magni.

3340 GOSUB 1220:REM décl.magni.

3350 PRINT #1,"Angle horaire de départ = ";RRR

3360 INPUT "DWLW, DELE = 1; DWLE,DELW = 2 : 1 ou 2 ?",NO

3370 IF NO=2 THEN PRINT #1,"DWLE (soir), DELW (matin)":GOTO 3390

3380 PRINT #1,"DWLW (matin), DELE (soir)"

3390 INPUT"Déclinaison choisie en ° ?",DD:D=DD*PI/180#:PRINT #1,"Déclinaison = "

;DD:

3400 INPUT "si nouvel angle horaire de départ appuyer sur Y sinon sur une autre

touche",DFG$

3410 IF DFG$="y" THEN INPUT "Nouvel angle horaire de départ en ° ?",RRR:R=RRR*PI

/180#:RR=RRR:RO=R

3420 GOTO 1650

3430 GOSUB 1130:REM asdd

3440 IF PDL$="Pas de lever pour cette déclinaison" THEN PDL$="NATHALIE PAKHOMOFF

":GOTO 3445

3441 GOTO 3450

3445 INPUT "arrêt: appuyez sur a; autre déclinaison sur d: a ou d?",DC$

3447 IF DC$ = "d" THEN 3390

3449 GOTO 4670

3450 GOSUB 1450:REM az levers et couchers

3460 IF PDC$="Pas de coucher pour cette déclinaison" THEN PDC$="SONIA PAKHOMOFF"

:GOTO 3510

3470 IF D-F<0 THEN GOTO 3510:REM Le cadran est éclairé tout ou partie de la jour

née.(l'angle entre zénith et équateur = f: si delta-f>0 <==> le soleil est derri

ère le premier vertical et

3475 REM selon la décl.et la décl. gnomo. plus de la moitié à la totalité du ca

dran ne pourra servir.) C'est le cas des zones intertropicales.

3480 IF NO=1 THEN PRINT"Cette moitié du cadran n'est pas éclairée pour cette f."

:GOTO 3485

3481 GOTO 3490

3485 INPUT "arrêt: appuyez sur a; autre déclinaison sur d: a ou d?",DC$

3487 IF DC$ = "d" THEN 3360

3489 GOTO 4670

3490 IF ALLE>=PI/2#+K THEN PRINT"Le soleil n'apparaît pas sur le cadran pour cet

te déclinaison.":GOTO 3505:REM Lorsque le soleil culmine au nord dans l'hémisphè

re nord les DELE ne peuvent pas être éclairés l'aprés-midi et les

3500 REM DWLW ne peuvent pas être éclairés le matin ce, quelle que soit la f et

la déclinaison. Les DELW et les DWLE peuvent être éclairés selon la déclinaison: si l'azim

ut devient < aw. Donc on compare aw à l'azimut des levers ou couchers.

3504 GOTO 3510

3505 INPUT "arrêt: appuyez sur a; autre déclinaison sur d: a ou d?",DC$

3507 IF DC$ = "d" THEN 3360

3509 GOTO 4670

3510 IF NO=2 THEN AW=PI/2#+K:K=-K:GOTO 3530

3520 AW=PI/2#-K

3530 GOSUB 1110:GOSUB 1100

3540 IF F>PI/2#-.00000000000001# THEN PRINT #1,"HV et H en cm. à partir de la mé

ridienne et paralléle à elle."

3550 FOR I%=1 TO 48

3560 GOSUB 1960:REM azimut

3570 IF D-F<=0 THEN GOTO 3630

3580 IF A<AW THEN GOTO 3680

3590 PRINT #1,"I% =";I%;" Angle horaire =";RRR

3600 RRR=RRR+3.75#:R=RRR*PI/180#

3610 IF A>AW THEN IF R<ASDD THEN GOTO 3880

3620 GOTO 3640:REM voir l'explication de cette condition à la ligne correspondan

te dans les inclinants.

3630 IF A<=AW THEN 3680

3640 AAA=AW

3650 GOSUB 680:REM horaz

3660 IF ASDD>PI-.00000000000001# THEN PRINT #1,"Pour cette déclinaison le soleil

est constamment sur l'horizon"

3670 I%=48:GOTO 3880

3680 GOSUB 2010:REM hauteur

3690 IF NO=2 THEN GOSUB 1880:GOTO 3710:REM LH dwle,delw:rem LH sur Þ

3700 GOSUB 1780:REM LH dwlw,dele:rem LH sur f

3710 GOSUB 2140:REM x et y

3720 IF F<PI/2#-.00000000000001# THEN 3750

3730 HV=X:H=XXX:IF X>LAR THEN HV=.001#:H=.001#

3740 GOTO 3800

3750 IF F>.000000000001# THEN GOTO 3780:REM si f n'est pas nul aller à 3780

3760 HV=ATN(AC*SIN(A)/(AB*COS(K)*TAN(BB))):IF HV<0 THEN HV=HV+PI

3770 HV=HV*180#/PI:GOTO 3800

3780 HV=ATN(X/(AB*TAN(F)+Y)):IF HV<0 THEN HV=HV+PI

3790 HV=HV*180#/PI:REM LH sur f' <=>tghv=tgh(f')=tgh(f)*AC/AB

3800 IF X>LAR THEN X=.001#:XXX=.001#

3810 IF Y>LONG THEN Y=.001#

3820 PRINT #1,USING ZZ$;RRR,H,AA,HT,X,Y,HV

3830 RRR=RRR+3.75#:R=RRR*PI/180#

3840 IF MOP=1 THEN I%=48:GOTO 3880

3850 IF R<ASDD THEN 3880

3860 IF ASDD=PI THEN PRINT #1,"Pour cette déclinaison le soleil est constamment

au dessus de l'horizon":GOTO 3890

3870 MOP=1:MAP=1:R=ASDD:RRR=FIX(ASDD*180000#/PI)/1000#:PRINT #1,"Coordonnées du

lever (LW) ou du coucher (LE)":GOTO 3560

3880 NEXT I%

3885 PRINT #1,"Coordonnées du midi solaire: X = 0 Y(A) =";AB*COS(K)*TAN(PI/2#

-F+D)/COS(K);" cm.":REM Azimut=0 et hauteur=90-f+déclinaison

3890 RRR=RR:R=RO:K=DG:MOP=0:MAP=0

3895 INPUT "arrêt: appuyez sur a; autre déclinaison sur d: a ou d?",DC$

3897 IF DC$ = "d" THEN 3360

3899 GOTO 4670

3900 PRINT #1,"Bifilaire vertical inclinant ou septentrional"

3910 IF F<PI/2#-1E-14 THEN IF F-.000000001#>0 THEN GOTO 3990:REM si f<90° et si

f n'est pas nul aller à 3990

3920 PRINT #1,"Cas du pôle ou de l'équateur":PRINT"Cas du pôle ou de l'équateur"

:IF ELISABETHPAKHOMOFF$="p" THEN AB=LSTC:AC=AB:GOTO 3970

3930 INPUT "Choisissez AB et AC quelconques avec AB<AC: AB et AC ?",AB,AC

3940 IF AB>AC THEN PRINT"AB doit être < AC: recommencez":GOTO 3930

3950 PRINT #1,"AB =";AB;" cm. AC =";AC;" cm.":REM Au pôle les lignes horaires

sont parallèles à la ligne méridienne et situées à la distance x=AC*sint/-cos(t

+ou-décl.gnomonique) de celle-ci selon le cas de figure.(T=H=t).

3960 REM A l'équateur elles partent du pied A du gnomon et répondent à la rela

tion tgHV=tgH*AC/AB ou encore tgHV=(AC/AB)*sinT/(cosdécl.gnomo.*tgh) où T est l'

azimut et h la hauteur.

3970 GOSUB 1590

3980 GOTO 4000

3990 PRINT #1,"Les lignes horaires tabulaires partent du point D éloigné de ";AB

*TAN(F);" cm. du point A pied du gnomon AB (vers le Nadir)"

4000 IF HH$="w" THEN AWM=PI/2#+K:AWS=PI/2#-K:GOTO 4030

4000 IF HH$="w" THEN AWM=PI/2#+K:AWS=PI/2#-K:GOTO 4030

4010 AWM=PI/2#-K:AWS=PI/2#+K:REM pour le calcul de la décl. magni.

4020 GOSUB 1220:REM décl. magni.

4030 PRINT #1,"Angle horaire de départ = ";RRR

4040 INPUT "INWLW, INELE = 1; INWLE, INELW = 2 : 1 ou 2 ?",NO

4050 IF NO=2 THEN PRINT #1,"INWLE (soir), INELW (matin)":GOTO 4070

4060 PRINT #1,"INWLW (matin), INELE (soir)"

4070 INPUT "Déclinaison choisie en ° ?",DD:D=DD*PI/180#:LPRINT"Déclinaison = ";D

D;"°"

4080 INPUT "si nouvel angle horaire de départ appuyer sur Y sinon sur une autre

touche",DFG$

4090 IF DFG$="y" THEN INPUT "Nouvel angle horaire de départ en ° ?",RRR:R=RRR*PI

/180#:RR=RRR:RO=R

4100 GOTO 1650

4110 GOSUB 1130:REM asdd

4120 IF PDL$="Pas de lever pour cette déclinaison" THEN PDL$="NATHALIE PAKHOMOFF

":GOTO 4125

4122 GOTO 4130

4125 INPUT "arrêt: appuyez sur a; autre déclinaison sur d: a ou d?",DC$

4127 IF DC$ = "d" THEN 4070

4129 GOTO 4670

4130 GOSUB 1450:REM az levers et couchers

4140 IF PDC$="Pas de coucher pour cette déclinaison" THEN PDC$="SONIA PAKHOMOFF"

:GOTO 4190

4150 IF D-F>.00000000001# THEN GOTO 4190:REM dans ce cas le soleil apparaît touj

ours sur le cadran: soit toute la journée, soit une partie===> horaz.

4160 IF NO=1 THEN IF ALLE<=PI/2#+K THEN PRINT"Le soleil n'apparaît pas sur le ca

dran pour cette déclinaison.":GOTO 4165

4162 GOTO 4170

4165 INPUT "arrêt: appuyez sur a; autre déclinaison sur d: a ou d?",DC$

4167 IF DC$ = "d" THEN 4040

4169 GOTO 4670

4170 IF NO=1 THEN GOTO 4190

4180 IF ALLE<=PI/2#-K THEN PRINT"Le soleil n'apparaît pas sur le cadran pour cet

te déclinaison.":GOTO 4185

4182 GOTO 4190

4185 INPUT "arrêt: appuyez sur a; autre déclinaison sur d: a ou d?",DC$

4187 IF DC$ = "d" THEN 4040

4189 GOTO 4670

4190 IF NO=2 THEN AW=PI/2#-K:GOTO 4210

4200 AW=PI/2#+K:K=-K

4210 GOSUB 1110:GOSUB 1100

4220 IF F>PI/2#-.00000000001# THEN PRINT #1,"HV et H en cm. à partir de la mérid

ienne et parallèle à elle."

4230 PRINT"aw=";AW

4240 FOR I%=1 TO 48

4250 PRINT"rrr=";RRR

4260 GOSUB 1960:PRINT"az=";A:REM azimut

4270 IF D-F<=0 THEN GOTO 4320:REM Si déclinaison-Þ<0 le soleil culmine au sud da

ns l'hémisphère nord (cas général).

4280 IF ALLE>AW THEN GOTO 4410: REM Pas besoin d'horazcar levers et couchers se

font devant le cadran.

4290 IF A>AW THEN GOTO 4410:REM Dans ce cas le soleil culmine au nord et est tou

jours devant le cadran jusqu'à une certaine heure qui sera donnée par horaz lors

que a devient <aw. On continue le programme.

4300 AAA=AW:GOSUB 680:REM horaz. Ici l'azimut devient < à aw <=> le soleil passe

derrière le cadran intertropical orienté au nord dans l'hémisphère nord avec un

soleil culminant au nord (déclinaison-f>0).

4310 GOTO 4650

4320 IF A>AW THEN GOTO 4390

4330 PRINT #1,"i% = ";I%;" Angle horaire = ";RRR;" Az=";A*180#/PI

4340 RRR=RRR+3.75#:R=RRR*PI/180#

4350 IF A<AW THEN IF R<ASDD THEN GOTO 4640

4360 AAA=AW:GOSUB 680:I%=48:GOTO 4640

4370 REM Si r>asdd alors que le cadran répond à la condition d'ensoleillement (a

lle>aw) c'est que l'incrémentation est trop forte et le passage sur le cadran se

fait pendant cette incrémentation supplémentaire.

4380 REM On renvoie alors sur horaz. Ceci n'a pas à être envisagé pour les zones

sub-tropicales (déclinaison-f>0) car le cadran est ensoleillé depuis midi jusqu

'à ce que a<=aw ou à alle (r>asdd) ====>horaz ou coordonnées des levers ou couc

hers.

4390 IF MAP=1 THEN GOTO 4410

4400 MAP=1:AAA=AW:GOSUB 680:REM horaz

4410 GOSUB 2010:REM hauteur

4420 IF NO=2 THEN GOSUB 1830:GOTO 4440:REM LH inelw,inwle:rem LH sur f

4430 GOSUB 1930:REM LH inele,inwlw:rem LH sur f

4440 GOSUB 2140:REM x et y

4450 X=-X:Y=-Y:XXX=-XXX

4460 IF F<PI/2#-.00000000000001# THEN 4490

4470 HV=X:H=XXX:IF HV>LAR THEN HV=.001#:H=.001#

4480 GOTO 4570

4490 IF F>.000000000001# THEN GOTO 4540:REM <=> si f n'est pas 0 aller à 4540

4500 IF ABS(BB)<.000000001# THEN HV=90:GOTO 4570

4510 HV=ATN(AC*SIN(A)/(AB*COS(K)*TAN(BB))):IF HV<0 THEN HV=HV+PI

4520 H=180#-H:REM à l'équateur le programme principal donne le supplément de l'a

ngle H considéré dans la théorie du bifilaire. On le retranche donc de pi pour a

voir les H et HV de la théorie.

4530 HV=HV*180#/PI:GOTO 4570

4540 HV=ATN(-X/(Y-AB*TAN(F))):IF HV<0 THEN HV=HV+PI:REM c'est la formule du cas

n° 2 de la théorie (quand y>AB); Elle marche aussi quand y<AD ;y-AD est alors<0

4541 REM ce qui <=>-x/(<0)<=>atn(>0) et HV<90°. La formule du cas n° 1 aurait do

nné le même résultat en posant aussi si HV<0 then HV=HV+PI.

4550 REM LH sur Þ' <=> tgHV=tgh(f')=tgh(f)*AC/AB

4560 HV=HV*180#/PI

4570 IF X>LAR THEN X=.001#:XXX=.001#

4580 IF Y>LONG THEN Y=.001#

4590 PRINT #1,USING ZZ$;RRR,H,AA,HT,X,Y,HV

4600 RRR=RRR+3.75#:R=RRR*PI/180#

4610 IF MOP=1 THEN I%=48:GOTO 4640

4620 IF R<ASDD THEN 4640

4630 MOP=1:R=ASDD:RRR=FIX(ASDD*180000#/PI)/1000#:PRINT #1,"Coordonnées du lever

pour les LW ou du coucher pour les LE":GOTO 4260

4640 NEXT I%

4645 IF ASDD=PI THEN PRINT #1,"180° <==> coordonnées du minuit solaire"

4650 RRR=RR:R=RO:K=DG:MOP=0:MAP=0

4655 INPUT "arrêt: appuyez sur a; autre déclinaison sur d: a ou d?",DC$

4657 IF DC$ = "d" THEN 4040

4660 REM LES CALCULS ET LOGICIEL ONT ETE REALISES PAR JEAN PAKHOMOFF.

4670 CLOSE

4680 END

RETOUR A MES TRAVAUX

RETOUR AU MENU

RETOUR PAGE PRECEDENTE