REM Constantes k = .0172024 jm = 674.03 jl = 752.2 e = .0167 ob = .4091 pi = 3.141593: dr = pi / 180: hr = pi / 12 REM fuseau horaire et hauteur du style droit fh = 2: g = 80 INPUT "Longitude, Latitude"; lo, la lo = lo * dr: dp = (90 - la) * dr INPUT "Jour, Mois, Ann‚e"; jo, mo, an IF mo < 3 THEN mo = mo + 12: an = an - 1 INPUT "Heure (l‚gale), Minute"; hh, mn REM Nombre de jours ‚coul‚s depuis REM le 1 Mars O h TU de la derniŠre ann‚e bissextile + 2 ans h = hh + mn / 60 - fh j = 365 * (an - 4 * INT(an / 4)) + INT(30.61 * (mo + 1)) + jo + h / 24 - 853 REM Longitude vraie du soleil m = k * (j - jm): l = k * (j - jl) s = l + 2 * e * SIN(m) + 1.25 * e * e * SIN(2 * m) REM Coordonn‚es locales du soleil x = COS(s): y = COS(ob) * SIN(s): z = SIN(ob) * SIN(s) r = l + h * hr - lo - pi: GOSUB 1300: r = dp: GOSUB 1200 REM Correction de la r‚fraction IF z < .9999 THEN ht = ATN(z / SQR(1 - z * z)) rf = .000291 / TAN(ht + .00223 / (ht + .077)) cr = COS(rf) - TAN(ht) * SIN(rf) x = cr * x: y = cr * y: z = SIN(ht + rf) END IF REM Coordonn‚es du soleil dans le repŠre du cadran INPUT "Ombre de la pointe du style droit X,Y :"; xp, yp rc = SQR(xp * xp + yp * yp + g * g) xp = -xp / rc: yp = -yp / rc: zp = g / rc REM calcul de l'inclinaison rc = SQR(1 - z * z - yp * yp) i1 = 2 * ATN((-xp + rc) / (z + zp)): i2 = 2 * ATN((-xp - rc) / (z + zp)) REM calcul de la d‚clinaison d1 = 2 * ATN((x - rc) / (y + yp)): d2 = 2 * ATN((x + rc) / (y + yp)) REM affichage des r‚sultats PRINT "i1="; i1 / dr, "d1="; d1 / dr PRINT "i2="; i2 / dr, "d2="; d2 / dr END 1200 REM Rotation de l'angle r autour de l'axe y rx = COS(r) * x - SIN(r) * z: rz = SIN(r) * x + COS(r) * z x = rx: z = rz: RETURN 1300 REM Rotation de l'angle r autour de l'axe z rx = COS(r) * x + SIN(r) * y: ry = -SIN(r) * x + COS(r) * y x = rx: y = ry: RETURN