Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD5.5] Problème de formule mathematique

1 réponse
Avatar
jedi
Bonjour

Est-ce qu'une âme charitable et néanmoins forte en maths, aurait la
gentillesse s'il vous plait, de me convertir en version W.Language les
formules ci-dessus (la fonction ceil n'existe pas dans windev) et quand
j'utilise "arrondi" ou "partieentière" mes résultats sont archi-faux.

LOD8x := Ceil( ( Longitude + 180 ) / 0.46875 ) - 1 ;
LOD8y := Ceil( ( 180 - ( Latitude + 90 ) ) / 0.3515625 ) - 1 ;

LOD13xSub:= Ceil( ( Longitude + 180 ) / 0.0146484375 ) - 1;
LOD13ySub:= Ceil( ( 180 - ( Latitude + 90 ) ) / 0.010986328125 ) - 1;

LOD13x := Ceil( ( Longitude + 180 ) / 0.0146484375 ) - 1 - ( LOD8x * 32 );
LOD13y := Ceil( ( 180 - ( Latitude + 90 ) ) / 0.010986328125 ) - 1 - ( LOD8y
* 32 );

Merci par avance à tous
Cordialement
Roger

1 réponse

Avatar
jedi
Afin d'éviter aux bonnes âmes un travail inutile j'ai finalement résolu le
problème.
Après avoir étudié le problème cette nuit, il s'avère que ces formules sont
impossibles à écrire telles qu'elles en W.langage (alors qu'elles
fonctionnent parfaitement en C).
La solution a consisté à décomposer le calcul en testant la partie décimale
pour obtenir un equivalent à "ceil" (arrondi supérieur ou égal)
Bonjour la lourdeur du code! Mais c'est vrai aussi que Windev n'a jamais eu
de prétention de langage scientifique.
Bonne journée à tous!


"jedi" a écrit dans le message de news:
439f1ffc$0$18311$
Bonjour

Est-ce qu'une âme charitable et néanmoins forte en maths, aurait la
gentillesse s'il vous plait, de me convertir en version W.Language les
formules ci-dessus (la fonction ceil n'existe pas dans windev) et quand
j'utilise "arrondi" ou "partieentière" mes résultats sont archi-faux.

LOD8x := Ceil( ( Longitude + 180 ) / 0.46875 ) - 1 ;
LOD8y := Ceil( ( 180 - ( Latitude + 90 ) ) / 0.3515625 ) - 1 ;

LOD13xSub:= Ceil( ( Longitude + 180 ) / 0.0146484375 ) - 1;
LOD13ySub:= Ceil( ( 180 - ( Latitude + 90 ) ) / 0.010986328125 ) - 1;

LOD13x := Ceil( ( Longitude + 180 ) / 0.0146484375 ) - 1 - ( LOD8x * 32 );
LOD13y := Ceil( ( 180 - ( Latitude + 90 ) ) / 0.010986328125 ) - 1 - (
LOD8y * 32 );

Merci par avance à tous
Cordialement
Roger