Correspondance géométrique de paramètres

Quand on parle gnomonique, sinus et cosinus ne sont pas des gros mots.
michel_S
Messages : 4
Enregistré le : mar. 25 juin 2019 14:25

Correspondance géométrique de paramètres

Message : #176 michel_S
dim. 30 juin 2019 00:42

Bonsoir,
La lecture de Cadran-info n°39 page 186 a réveillé en moi une ancienne interrogation. Pour calculer les coordonnées de l'extrémité de l'ombre d'un style droit sur un mur vertical, il est fait usage de trois paramètre : Q, Nx et Ny. On les retrouve aussi dans Gnomonique moderne de Denis Savoie page 65. Il y a 4 paramètres Q, Nx, Ny et p associés chacun à une formule assez lourde. Ils correspondent au cas général d'un cadran incliné déclinant. Ces formules sont adaptées au cas d'un cadran vertical déclinant page 80. Ce sont celles que l'on retrouve dans l'article sur l'ombre d'un toit en V inversé dans Cadran-info. On retrouve aussi ces formules adaptées au cas d'un cadran horizontal page 93.
Il doit certainement y avoir un correspondant géométrique à chacun de ces paramètres. Mais lequel ? Quelqu'un a-t-il des lumières sur ce point ? Et où peut-on trouver la démonstration de la grosse formule de trigonométrie associée à chacun ?
J'ai bien conscience qu'il ne s'agit pas d'une question facile. Aussi, merci d'avance à ceux qui s-y frotteront.

Avatar du membre
Yvon_M
Administrateur du site
Messages : 97
Enregistré le : dim. 4 nov. 2018 01:54
Localisation : Pontoise (Île-de-France)
Contact :

Re: Correspondance géométrique de paramètres

Message : #180 Yvon_M
dim. 30 juin 2019 13:34

Initialement, ces formules ont effectivement été proposées par D. Savoie dans Gnomonique moderne.

D’après les relations finales \(x=a\frac{Nx}{Q}\) et \(y=a\frac{Ny}{Q}\), les paramètres Nx, Ny et Q correspondent aux coordonnées dans le repère du cadran, c’est-à-dire axe des x, des y et des z ce dernier étant perpendiculaire au cadran, d’un vecteur dirigé vers le Soleil.

Pour les avoir étudiées il y a longtemps, je crois me souvenir que les formules assez lourdes découlent du calcul matriciel en utilisant des matrices de rotation.
Yvon Massé - Site perso. : La gnomonique

Avatar du membre
Yvon_M
Administrateur du site
Messages : 97
Enregistré le : dim. 4 nov. 2018 01:54
Localisation : Pontoise (Île-de-France)
Contact :

Re: Correspondance géométrique de paramètres

Message : #188 Yvon_M
lun. 1 juil. 2019 22:38

En complément de ce que j’ai écrit ci-dessus, voici comment on peut écrire les équations des paramètres Nx, Ny et Q sous forme de produit de matrice dans le cas du cadran incliné déclinant :
$$\left(\begin{array}{c}Ny\\-Nx\\Q\end{array}\right)=
\left(\begin{array}{ccc}\cos Z&0&-\sin Z\\0&1&0\\\sin Z&0&\cos Z\end{array}\right)
\left(\begin{array}{ccc}\cos D&-\sin D&0\\\sin D&\cos D&0\\0&0&1\end{array}\right)
\left(\begin{array}{ccc}\sin\phi&0&-\cos\phi\\0&1&0\\\cos\phi&0&\sin\phi\end{array}\right)
\left(\begin{array}{c}\cos H\\-\sin H\\\tan\delta\end{array}\right)$$
Cette écriture se prête particulièrement bien à la programmation classique. Voici à titre d’exemple un script Python qui calcule ces paramètres en appelant 3 fois le même sous-programme.

Code : Tout sélectionner

from math import *

def Rot(x, y, r):
  r *= pi/180   # Conversion en radian
  return cos(r)*x + sin(r)*y, -sin(r)*x + cos(r)*y

H = 15
delta = 10
phi = 49
D = 20
Z = 70

x, y, z = cos(H*pi/180), -sin(H*pi/180), tan(delta*pi/180)
z, x = Rot(z, x, 90-phi)
x, y = Rot(x, y, -D)
z, x = Rot(z, x, Z)
print "Nx = %f, Ny = %f, Q = %f" % (-y, x, z)
Yvon Massé - Site perso. : La gnomonique

michel_S
Messages : 4
Enregistré le : mar. 25 juin 2019 14:25

Re: Correspondance géométrique de paramètres

Message : #198 michel_S
ven. 5 juil. 2019 12:13

Merci pour la réponse. J'ai effectué les calculs et constaté qu'on obtient effectivement les bons paramètres Nx, Ny et Q.
Mon interprétation est la suivante. Le vecteur unitaire "rayon du soleil" est d'abord envisagé dans une base x,y,z associée à un plan équatorial, seul plan où les valeurs H et H' des angles horaires et horaires tabulaires sont égales. l'axe des x est la ligne de midi (symétrie des valeurs de H de part et d'autre de midi et parité de la fonction cosinus). L'axe des y est la ligne horizontale 6 h-18 h orientée vers l'ouest (fonction sinus et signe moins). L'axe des z est l'axe polaire (déclinaison delta par rapport au plan équatorial). Puis, il est envisagé trois rotations pour passer de la base équatoriale à la base du cadran incliné déclinant. l'axe de chacune de ces rotation résulte de l'observation du "1" dans les matrices associées. il y a d'abord une rotation autour de l'axe (horizontal) des y de 90°-phi (90°-phi et non phi au vu de l'échange sinus-cosinus dans la matrice) pour passer d'une base équatoriale à une base horizontale. Puis, il y a une rotation autour de l'axe des z (devenu vertical) de valeur D pour passer à la base du (futur) cadran déclinant. la base est encore celle d'un cadran horizontal. Enfin, à partir de la précédente, il y a une rotation autour de l'axe des y (horizontal) de valeur Z (distance zénithale = inclinaison) pour passer à la base du cadran incliné déclinant. Tout cela semble bien cohérent.
Cependant, il subsiste une interrogation. Dans le livre Gnomonique Moderne ainsi que dans l'article de Cadran-Info n° 39 sur l'ombre d'un toit en V inversé, l'axe des x est l'axe horizontal et l'axe des y celui qui est associé à la ligne de plus grande pente. Or, si l'interprétation des matrices de rotation est correcte, cela serait l'inverse. Qu'en penser ?

Avatar du membre
Yvon_M
Administrateur du site
Messages : 97
Enregistré le : dim. 4 nov. 2018 01:54
Localisation : Pontoise (Île-de-France)
Contact :

Re: Correspondance géométrique de paramètres

Message : #199 Yvon_M
ven. 5 juil. 2019 22:22

Michel, votre analyse est exacte et très bien formulée, c’est effectivement sur ces bases que j’ai établi la partie gauche de l’égalité. Juste un tout petit détail qui ne change en rien votre raisonnement : le vecteur "rayon du Soleil" n’est pas unitaire, sa norme est \(\frac{1}{\cos\delta}\)

Le repère dans lequel on obtient les coordonnées (x, y, z) du résultat est donc le suivant :
  • Axe des x sur la ligne de plus grande pente vers le bas
  • Axe des y sur la ligne horizontale vers la droite en regardant le cadran
  • Axe des z perpendiculaire au cadran vers l’observateur
Et les coordonnées du point d’ombre dans ce repère sont : \(X=-a\frac{x}{z}\) et \(Y=-a\frac{y}{z}\)

Or l’usage a fait qu’on utilise généralement le repère défini dans Gnomonique moderne et Cadran-Info, dans ce dernier il faut donc écrire : \(X=-a\frac{y}{z}=a\frac{Nx}{Q}\) et \(Y=a\frac{x}{z}=a\frac{Ny}{Q}\)
D’où : \(Nx=-y\), \(Ny=x\) et \(Q=z\)

Ce qui répond, je pense, à votre question.

Je signale aussi un autre avantage de la méthode des matrices par rapport aux formules classiques de changement de repère qui utilisent les coordonnées sphériques et qu’on trouve dans les publications de gnomonique d’avant l’ère informatique : dans le cas des matrices on n’a jamais à se poser de question sur le signe des coordonnées et le seul cas de dénominateur nul à traiter est celui de Q. Les formules sont toutefois plus lourdes, ce qui explique qu’on préférait procéder autrement auparavant.
Yvon Massé - Site perso. : La gnomonique

Avatar du membre
Yvon_M
Administrateur du site
Messages : 97
Enregistré le : dim. 4 nov. 2018 01:54
Localisation : Pontoise (Île-de-France)
Contact :

Re: Correspondance géométrique de paramètres

Message : #205 Yvon_M
ven. 12 juil. 2019 22:43

Pour illustrer ce que j’ai écrit plus haut, voici le code Python d’un programme qui calcule les angles de tous les cadrans à centre pour les deux hémisphères terrestres. Le seul test effectué concerne la proximité du centre. Est-il possible de faire plus simple ?

Code : Tout sélectionner

from math import *

def Rot(x, y, r):
  r *= pi/180
  return cos(r)*x + sin(r)*y, -sin(r)*x + cos(r)*y

phi = 49    # Latitude en °, négative dans l'hémisphère sud
D = 20      # Déclinaison en °, négative à l'est
Z = 80      # Inclinaison en ° ou distance zénithale

# Les angles tabulaires sont donnés dans le sens anti-horaire par rapport à la ligne de plus grande pente dirigée vers le bas

x, y, z = 0, 0, 1          # Vecteur unitaire dirigé vers le pôle nord dans le repère polaire
z, x = Rot(z, x, 90 - phi) # ... dans le repère local
x, y = Rot(x, y, -D)
z, x = Rot(z, x, Z)        # ... dans le repère cadran
if abs(z) < 0.05:
  print("Cadran à centre éloigné")
else:
  print("Angle du style au dessus du cadran : %1.2f°" % (asin(abs(z))*180/pi))
  xc, yc = -x/z, -y/z      # Centre du cadran
  print("Angle tabulaire de la sous-stylaire : %1.2f°" % (atan2(-yc, -xc)*180/pi))
  for hv in range(6, 19):
    x, y, z = -1, 0, 0
    x, y = Rot(x, y, 15*hv)    # Direction du Soleil aux équinoxes à l'heure hv dans le repère polaire
    z, x = Rot(z, x, 90 - phi) # ... dans le repère local
    x, y = Rot(x, y, -D)
    z, x = Rot(z, x, Z)        # ... dans le repère cadran
    print("Angle tabulaire de la ligne horaire de %2d h : %1.2f°" % (hv, atan2(-y - yc*z, -x - xc*z)*180/pi))
Yvon Massé - Site perso. : La gnomonique