OVH Cloud OVH Cloud

Valeur d'un angle en degre

20 réponses
Avatar
GP
Bonjour,

Je ne trouve pas dans Windev 7.5 la fonction inverse du cosinus d'un angle,
c'est à dire : connaissant le cosinus d'un angle, quelle est, en degrés,minutes
la valeur de cet angle.

Merci d'avance à celui qui pourrait me fournir la solution


--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/

10 réponses

1 2
Avatar
GP
Bonjour,


PYT je te remercie infiniment de toute la peine que tu as bien voulu prendre
pour m'aider : tu es super

Je vais me servir de ton code pour le comparer au mien car nos résultats sont
sensiblement divergents de ceux du test

En ce qui concerne les jeux d'essai je les ai générés à partir du site suivant
qui est référencé dans le texte du modèle de calcul
http://www.imcce.fr/cgi-bin/levcou.cgi

Merci encore

Cordialement




--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/
Avatar
PYT
Ce qui serait interressant serait de questionner les concepteurs du site sur
pourquoi hl+hc <> 24 .

Parce que d'après les formules ...

Bonne continuation

PYT
--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/
Avatar
GP
Bonjour PYT

Je suis allé au bout de mes tests et les résultats que j'obtiens ont une
différence de :
9 à 10 minutes pour l'heure UTC
et de 4 minutes pour l'heure vraie

J'abandonne ...

J'ai rapproché tes calculs et les miens : nous sommes identiques malgré la
différence de code entre le tien et le mien

Pour les tests je me sert également des tableaux de levers et couchers de soleil
de l'almanach du facteur de la poste

Nota : en WD75 il n'y a plus de double pour le réél : c'est réel tout cours

Je te livre mon dernier code

Merci encore infiniment

___________________________________

DD est un entier
MM est un entier
AA est un entier
N1 est un entier
N2 est un entier
K est un entier
RangJ est un entier
LatD est un entier
LatM est un entier
Lat est un réel
LongD est un entier
LongM est un entier

D est un entier
S est un entier
DegSec est un entier
DS est un réel
DSX est une chaîne
LatX est une chaîne


// Les champs de saisie des heures et minutes des latitudes et longitudes sont
séparés
LatD = LatitudeDegre
LatM = LatitudeMinute
LatX = LatitudeDegre+"."+LatitudeMinute
Lat = Val(LatX)

LongD = LongitudeDegre
LongM = LongitudeMinute
MM=SMois
DD=SJour
AA=SAnnee
// Calcul du rang du jour

N1 = PartieEntière((MM*275) / 9)
N2 = PartieEntière((MM+9) / 12)
K = 1 + PartieEntière((AA-4*PartieEntière(AA/4)+2)/3) // K=2 >> année commune
// K=1 >> année bissextile
//rang du jour
RangJ= N1 - N2*K + DD - 30

//_______________________________________________________________________________
____
// Calcul simplifié des valeur des l'Equation du Temps et de la Déclinaison
solaire
// Les coefficients correspondent aux paramètres de l'orbite terrestre
(exentricite et inclinaison )
// pour l'année 2005
// ces calculs seront valables pour une dizaine d'années et même au delà
//_______________________________________________________________________________
____

// M,C,L et R sont des degrés
M est un réel // est l'anomalie moyenne en degrés
C est un réel // est l'équation du centre en degrés ( influence de l'ellipticité
de l'orbite terrestre )
L est un réel // est la longitude vraie du soleil en degrés
R est un réel // est la réduction à l'équateur ( influence de l'inclinaison de
l'axe terrestre )
ETemps est un réel // Equation du Temps en minutes
SinusDeclinaison est un réel // Sinus de la déclinaison du soleil

M = 357 + (0.9856*RangJ)
C = (1.914*Sinus(M)) + (0.02*Sinus(2*M))
L = 280 + C + (0.9856*RangJ)
R = (-2.466*Sinus(2*L)) + (0.053*Sinus(4*L))
ETemps = (C + R)*4
SinusDeclinaison = 0.3978*Sinus(L)


HO est un réel // est l'angle horaire
CHO est un réel //contient le cosinus de l'angle horaire
CHO = ( -0.01454 - SinusDeclinaison * Sinus (Lat) ) / ( Racine(( 1-
SinusDeclinaison*SinusDeclinaison)) * Cosinus(Lat) )

HO = ArcCosinus(CHO) // angle horaire en degrés
HO = HO/15 // angle horaire converti en heures

F est un entier // n° du méridien
F = 1 // pour la France




//----------- LEVERS ------------------------------

// Heure vraie
VL est un réel
VLH est un réel // heure
VLM est un réel // minutes
VL = 12 - HO
VLH = PartieEntière(VL)
VLM = PartieEntière(PartieDécimale(VL)*60)

// Heure UTC
TL est un réel
TLH est un réel // heure
TLM est un réel // minutes
TL = 12 - HO
TLH = PartieEntière(TL)
TLM = PartieEntière(PartieDécimale(TL)*60) + PartieEntière(ETemps +
((LongD*4)+LongM)/60)
SI TLM > 59 ALORS
TLM = TLM - 60
TLH = TLH + 1
FIN

// Heure légale
HL est un réel
HLH est un réel // heure
HLM est un réel // minutes
HL = 12 - HO
HLH = PartieEntière(HL)
HLH = HLH + F + 1 // (heure en été )
HLM = PartieEntière(PartieDécimale(HL)*60) + PartieEntière(ETemps +
((LongD*4)+LongM)/60)
SI HLM > 59 ALORS
HLM = HLM - 60
HLH = HLH + 1
FIN


//----------- COUCHERS ------------------------------

// correction pour obtenir 10 minutes de moins
//HO = HO - 0.32

// Heure vraie
VC est un réel
VCH est un réel
VCM est un réel
VC = 12 + HO
VCH = PartieEntière(VC)
VCM = PartieEntière(PartieDécimale(VC)*60)

// Heure UTC
TC est un réel
TCH est un réel // heure
TCM est un réel // minute
TC = 12 + HO
TCH = PartieEntière(TC)
TCM = PartieEntière(PartieDécimale(VC)*60) + PartieEntière(ETemps +
((LongD*4)+LongM)/60)
SI TCM > 59 ALORS
TCM = TCM - 60
TCH = TCH + 1
FIN

// heure légale
HC est un réel
HCH est un réel // heure
HCM est un réel // minutes
HC = 12 + HO
HCH = PartieEntière(HC)
HCH = HCH + F + 1 // (heure en été )
HCM = PartieEntière(PartieDécimale(VC)*60) + PartieEntière(ETemps +
((LongD*4)+LongM)/60)
SI HCM > 59 ALORS
HCM = HCM - 60
HCH = HCH + 1
FIN


//------- Affichage des résultats -------------------

RLeverH = VLH
RLeverM = VLM
RCoucherH = VCH
RCoucherM = VCM

TLeverH = TLH
TLeverM = TLM
TCoucherH = TCH
TCoucherM = TCM

LLeverH = HLH
LLeverM = HLM
LCoucherH = HCH
LCoucherM = HCM


--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/
Avatar
GP
Bonjour Romain,

Je te remercie pour ces judicieux conseils qui peuvent souvent poser problème
Mais malheureusement dans mon cas la façon de saisir les formule ne change rien

En effet PYT m'a fournit dans un de ses messages le code suivant ...
_____________________________________________________

m est un reel double = 357+0.9856*j
c est un reel double = 1.914*sin(357+0.9856*j)+0.02*sin(2*(357+0.9856*j))
l est un reel double = 280+(1.914*sin(357+0.9856*j)+0.02*sin(2*(357+0.
9856*j)))+0.9856*j
r est un reel double = -2.466*sin(2*(280+(1.914*sin(357+0.9856*j)+0.
02*sin(2*(357+0.9856*j)))+0.9856*j))+0.053*sin(4*(280+(1.914*sin(357+0.9856*j)+0.

02*sin(2*(357+0.9856*j)))+0.9856*j))
sindec est un reel double = 0.3978*sin(280+(1.914*sin(357+0.9856*j)+0.
02*sin(2*(357+0.9856*j)))+0.9856*j)
eqt est un reel double = ((1.914*sin(357+0.9856*j)+0.02*sin(2*(357+0.9856*j)))+..
Avatar
GP
Farplus a écrit

Il me semble toutefois que ces formules adaptées présentent une erreur car
pour le calcul de l'heure vraie elles ne tiennent pas compte de la longitude.





Dans cet ordre d'idées je vous ferais également remarquer que Marseille se




trouve à la longitude de 5,22 EST, c'est à dire qu'elle doit être traitée en
négatif.


Merci de tes observations : j'ai apporté les corrections mais néanmoins mes
résultats sont toujour décevants car il persiste une erreur d'environ 4 à 5
minutes pour le lever et pour le coucher ( mes résultats ont des valeurs
supérieures à celles du bureau de la longitude )

Exemple :
Paris le 15-08-2003
Latitude 48,50
Longitude 2,20
Heure de lever : BDL indique 4h45 --- j'obtiens 4h48
Heure de coucher : BDL indique 19h04 --- j'obtiens 19h09

Merci encore pour ton aide


--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/
Avatar
farplus
Bonjour,

Peux-tu m’indiquer les corrections que tu as apportées ?
J’ai peut-être une voie…

--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/
Avatar
Pierre-Yves Tavernier
A priori c'est dans l'eure UTC et l'heure légale que l'on tiens compte de la
longitude.

Heure UTC : TC = 12 + Ho + ET + LonHeure légale : HC = 12 + Ho + ET + Lon +
F + (1 heure en été)

et effectivement des villes sur la mêmes laitue de de longitude différences
ont des hc et hv différentes

Cordialement

PYT

"farplus" a écrit dans le message de news:


Bonjour,

j'ai examiné le code essayé par un intervenant (j'ai oublié son pseudo,


qu'il
m'en excuse),
code:
DD est un entier
MM est un entier ...

qui à première vue correspond bien aux formules présentes sur le site


indique
par l'initiateur;
C'est du très bon boulot;

Il me semble toutefois que ces formules adaptées présentent une erreur car


pour
le calcul de l'heure vraie elles ne tiennent pas compte de la longitude.
Or ce paramètre est à mon avis essentiel, dans le cas contraire toutes les
villes sur la même latitude devraient avoir les mêmes heures de lever et


coucher
du soleil.
PREUVE:
Si on consulte le bureau des longitudes, Tarbes et Marseille se retrouvent


à un
petit poil près sur la même latitude (resp. 43,14 et 43,18), l'heure de


lever de
soleil pour la première au 11/8 est de 5h01 et 4H40 pour la seconde.

Dans cet ordre d'idées je vous ferais également remarquer que Marseille se
trouve à la longitude de 5,22 EST, c'est à dire qu'elle doit être traitée


en
négatif.

D'autre part il y a un moyen beaucoup plus simple en WL pour calculer le
RangJ sans devoir prêter attention à l'année bisextile:

Rangj est un entierÚtedifference(date, NVC(annee-1)+"1231")

A bientôt, courage et encore bravo


--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/


Avatar
Eric Demeester
dans (in) fr.comp.developpement.agl.windev, "Pierre-Yves Tavernier"
ecrivait (wrote) :

et effectivement des villes sur la mêmes laitue



Quelle salade :)

Bon ok, je sors.

--
* WindevAsso : sources, ressources, trucs et astuces, FAQ :
* http://www.windevasso.org
Avatar
GP
farplus a écrit ...

Peux-tu m’indiquer les corrections que tu as apportées ?
J’ai peut-être une voie…






1) J'ai corrigé le calcul de la longitude en la rendant négative
LongD = LongitudeDegre
LongM = LongitudeMinute
Lon = PartieEntière((((LongD*4)+LongM) * -1) / 60)

2) Dans l'heure vraie j'ai rajouté la longitude seule bien que celà ne soit pas
précisé dans le modèle : mais c'est au moins plus proche des résultats de du BDL



------- Lever --------------
// Heure vraie
VL est un réel
VLH est un réel // heure
VLM est un réel // minutes
VL = 12 - HO
VLH = PartieEntière(VL)
//cette écriture est équivalente ...
//VLM = partieentiere(partiedecimale(vl)*60)
// à celle-ci ...
VLM = PartieDécimale(VL)
VLM = VLM * 60
VLM = PartieEntière(VLM) + Lon
SI VLM > 59 ALORS
VLM = VLM - 60
VLH = VLH + 1
FIN

---------- coucher --------------------
// Heure vraie
VC est un réel
VCH est un réel
VCM est un réel
VC = 12 + HO
VCH = PartieEntière(VC)
VCM = PartieEntière(PartieDécimale(VC)*60) + Lon
SI VCM > 59 ALORS
VCM = VCM - 60
VCH = VCH + 1
FIN


_________________________________________________________


Revoici le code entier de l'algorithme

_________________________________________________________
DD est un entier
MM est un entier
AA est un entier
N1 est un entier
N2 est un entier
K est un entier
RangJ est un entier
LatD est un entier
LatM est un entier
Lat est un réel
LongD est un entier
LongM est un entier

D est un entier
S est un entier
DegSec est un entier
DS est un réel
DSX est une chaîne
LatX est une chaîne
Lon est un réel

// Les champs de saisie des heures et minutes des latitudes et longitudes sont
séparés
LatD = LatitudeDegre
LatM = LatitudeMinute
LatX = +LatitudeDegre+"."+LatitudeMinute
Lat = Val(LatX)

LongD = LongitudeDegre
LongM = LongitudeMinute
Lon = PartieEntière((((LongD*4)+LongM) * -1) / 60)

MM=SMois
DD=SJour
AA=SAnnee
// Calcul du rang du jour

N1 = PartieEntière((MM*275) / 9)
N2 = PartieEntière((MM+9) / 12)
K = 1 + PartieEntière((AA-4*PartieEntière(AA/4)+2)/3) // K=2 >> année commune
// K=1 >> année bissextile
//rang du jour
RangJ= N1 - N2*K + DD - 30

//_______________________________________________________________________________
____
// Calcul simplifié des valeur des l'Equation du Temps et de la Déclinaison
solaire
// Les coefficients correspondent aux paramètres de l'orbite terrestre
(exentricite et inclinaison )
// pour l'année 2005
// ces calculs seront valables pour une dizaine d'années et même au delà
//_______________________________________________________________________________
____

// M,C,L et R sont des degrés
M est un réel // est l'anomalie moyenne en degrés
C est un réel // est l'équation du centre en degrés ( influence de l'ellipticité
de l'orbite terrestre )
L est un réel // est la longitude vraie du soleil en degrés
R est un réel // est la réduction à l'équateur ( influence de l'inclinaison de
l'axe terrestre )
ETemps est un réel // Equation du Temps en minutes
SinusDeclinaison est un réel // Sinus de la déclinaison du soleil

M = 357 + (0.9856*RangJ)
C = (1.914*Sinus(M)) + (0.02*Sinus(2*M))
L = 280 + C + (0.9856*RangJ)
R = (-2.466*Sinus(2*L)) + (0.053*Sinus(4*L))

//L1 est un réel
//L2 est un réel
//sinL1 est un réel
//sinL2 est un réel
//R1 est un réel
//R2 est un réel

//L1 = 2*L
//L2 = 4*L
//sinL1 = Sinus(L1)
//sinL2 = Sinus(L2)
//R1 = -2.466 * sinL1
//R2 = 0.053 * sinL2
//R = R1 + R2


ETemps = (C + R)*4
SinusDeclinaison = 0.3978*Sinus(L)
Dec est un réel
Dec = ArcSinus(SinusDeclinaison)


HO est un réel // est l'angle horaire
CHO est un réel //contient le cosinus de l'angle horaire
//CHO = ( -0.01454 - sinusDeclinaison * sinus (Lat) ) / ( racine(( 1-
sinusdeclinaison*sinusdeclinaison)) * cosinus(Lat) )
CHO = ( -0.01454 - Sinus(Dec) * Sinus (Lat) ) / ( Cosinus(Dec) * Cosinus(Lat) )


HO = ArcCosinus(CHO) // angle horaire en degrés
HO = HO/15 // angle horaire converti en heures

F est un entier // n° du méridien
F = 1 // pour la France




//----------- LEVERS ------------------------------

// Heure vraie
VL est un réel
VLH est un réel // heure
VLM est un réel // minutes
VL = 12 - HO
VLH = PartieEntière(VL)
//VLM = partieentiere(partiedecimale(vl)*60)
VLM = PartieDécimale(VL)
VLM = VLM * 60
VLM = PartieEntière(VLM) + Lon
SI VLM > 59 ALORS
VLM = VLM - 60
VLH = VLH + 1
FIN

// Heure UTC
TL est un réel
TLH est un réel // heure
TLM est un réel // minutes
TL = 12 - HO
TLH = PartieEntière(TL)
TLM = PartieEntière(PartieDécimale(TL)*60) + PartieEntière(ETemps + Lon)
SI TLM > 59 ALORS
TLM = TLM - 60
TLH = TLH + 1
FIN

// Heure légale
HL est un réel
HLH est un réel // heure
HLM est un réel // minutes
HL = 12 - HO
HLH = PartieEntière(HL)
HLH = HLH + F + 1 // (heure en été )
HLM = PartieEntière(PartieDécimale(HL)*60) + PartieEntière(ETemps + Lon)
SI HLM > 59 ALORS
HLM = HLM - 60
HLH = HLH + 1
FIN


//----------- COUCHERS ------------------------------


// Heure vraie
VC est un réel
VCH est un réel
VCM est un réel
VC = 12 + HO
VCH = PartieEntière(VC)
VCM = PartieEntière(PartieDécimale(VC)*60) + Lon
SI VCM > 59 ALORS
VCM = VCM - 60
VCH = VCH + 1
FIN


// Heure UTC
TC est un réel
TCH est un réel // heure
TCM est un réel // minute
TC = 12 + HO
TCH = PartieEntière(TC)
TCM = PartieEntière(PartieDécimale(VC)*60) + PartieEntière(ETemps + Lon)
SI TCM > 59 ALORS
TCM = TCM - 60
TCH = TCH + 1
FIN

// heure légale
HC est un réel
HCH est un réel // heure
HCM est un réel // minutes
HC = 12 + HO
HCH = PartieEntière(HC)
HCH = HCH + F + 1 // (heure en été )
HCM = PartieEntière(PartieDécimale(VC)*60) + PartieEntière(ETemps + Lon)
SI HCM > 59 ALORS
HCM = HCM - 60
HCH = HCH + 1
FIN


//------- Affichage des résultats -------------------

RLeverH = VLH
RLeverM = VLM
RCoucherH = VCH
RCoucherM = VCM

TLeverH = TLH
TLeverM = TLM
TCoucherH = TCH
TCoucherM = TCM

LLeverH = HLH
LLeverM = HLM
LCoucherH = HCH
LCoucherM = HCM


--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/
Avatar
farplus
Bien,

Merci pour la réponse:

premiere chose:
corriger
LongD = LongitudeDegre
LongM = LongitudeMinute
Lon = PartieEntière((((LongD*4)+LongM) * -1) / 60)
PAR:
LongD = LongitudeDegre * 4
LongM = LongitudeMinute * 4
Lon= (LongD + PartieEntiere(LongM/60)) * -1

explication:
2°20E de Paris = -9m21s

donc
2*4=8
20*4€
80/60=1
8+1=9
9*-1 = -9(reste le 20 sec, non prises en compte ci-dessus)

d'autre part une reflexion générale:
dans l'exemple on travaille sur des dégrés et minutes.
Or le résultats de sinus, cosinus etc donnent de rééls cad des décimales.
Il faudrait peut être tout convertir en minutes faire les calculs et
rétablir en heures

(PartieEntiere(degre)*60+partiedecimale(degre)*60/100)
ce soir je continuerais...

A+





--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/
1 2