Trigonométrie / Astronomie

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Tiorte
Messages: 7
Enregistré le: 08 Mar 2015, 01:05

Trigonométrie / Astronomie

par Tiorte » 08 Mar 2015, 02:35

Bonjour à vous, je travail actuellement sur un projet de fin d'études de niveau master 2 dans le milieu des NTIC. J'ai jusqu'à présent réussi à résoudre tous mes problèmes, mais là je sèche et je requiert donc votre aide précieuse ! :)

Si le finalité du problème sera matérialisée en algorithme (ça je m'en charge :D), la partie trigonométrique me laisse sur place. Je ne suis pas trop dans les maths, j'espère que je vais pouvoir vous exposer correctement le problème. Si besoin de plus de détails, n'hésitez pas !

Pour commencer, un schéma :
Image

Le problème :
Soit un cercle de centre O et de rayon 90.
Soit un angle ;) du cercle de centre O, orienté dans une direction E (étant établi que E peut bouger).
Soit C et B les points d'intersection de ;) avec le cercle de centre O.
Soit le segment DA, parallèle à CB et passant par O.

Pour tout point P(;)', r) du disque de centre O, déterminer si il appartient à ABCD
- ;)' est l'angle du point P
- r est le rayon du point P

Ce que j'arrive à faire :
- déterminer si P appartient à OCB (facile vous me direz ...)

Ce que je n'arrive pas à faire :
- déterminer les coordonnées de D et de A
- déterminer si P appartient à OCD ou OBA

En vous remerciant par avance de toute l'aide que vous pourrez apporter ! :)



Robic
Membre Irrationnel
Messages: 1084
Enregistré le: 03 Mai 2013, 11:00

par Robic » 08 Mar 2015, 03:23

Bonjour ! Il y a quelques petites imprécisions trompeuses dans l'énoncé :

Soit C et D les points d'intersection de ;) avec le cercle de centre O.

En fait il s'agit de C et B (pas D). (Ensuite la phrase est un peu maladroite bancale, mais on comprend.)

Pour tout point P(;)', r) du cercle O

du disque de centre O, pas du cercle : le point P peut être à l'intérieur, je crois.

Ensuite, pour les questions :

- déterminer les coordonnées de D et de A

Il faut choisir un repère. Prenons par exemple le repère de centre O et d'axes (OE) (axe des x) et (OD) (axe des y) . Dans ce repère on peut calculer les coordonnées de tous les points :
O (0 ; 0)
E (R ; 0)
B (R cos(;)/2) ; - R sin(;)/2))
C (R cos(;)/2) ; + R sin(;)/2))
A (0 ; - R sin(;)/2))
D (0 ; + R sin(;)/2))
(où R = 90).

Quant au point P, il faudrait que tu précises ce qu'est ;)' : à partir de quoi on le compte ? Tu pourrais en rajouter un sur la figure ? Quand je saurais comment compter ;)', je pourrais calculer ses coordonnées.

déterminer si P appartient à OCD ou OBA

Avec les coordonnées, plus besoin de décomposer ainsi. Pour savoir s'il appartient à ABCD (tu parles bien de l'arc BC, pas du segment [BC] ? - donc ABCD n'est pas un rectangle, n'est-ce pas ?) il y a deux étapes :
- On regarde si x est positif et si y est compris entre - R sin(;)/2) et + R sin(;)/2) (si oui, ça signifie qu'il fait partie de la demi-bande délimitée par les droites (AB) et (CD) située du côté des x positifs.
- On regarde si x²+y² <= R² (si oui, ça signifie que, de plus, on est dans le disque).

Tiorte
Messages: 7
Enregistré le: 08 Mar 2015, 01:05

par Tiorte » 08 Mar 2015, 03:54

Bonsoir, tout d'abord merci pour les corrections dans l'énoncé, tu as malgré tout bien saisi le sens ! :)

Je dois dire que tu m'a scotché à ma chaise, ça fait une semaine que je m'arrache là-dessus, je voyais ça plus complexe T_T

Quant au point P, il faudrait que tu précises ce qu'est ;)' : à partir de quoi on le compte ?

;)' et r sont des coordonnées horizontales (azimut et altitude). C'est pour ça que le 0 est en haut et pas à droite. Du coup ;)' est un angle en degrés compris entre 0 et 359, on le compte à partir du 0 présent sur le disque de centre O. J'ai mis le schéma à jour.

tu parles bien de l'arc BC, pas du segment [BC] ? - donc ABCD n'est pas un rectangle, n'est-ce pas ?

En effet c'est bien ça !

Je vais prendre le temps bien cerner et de mettre en application puis je reviendrai te faire un retour. Cela dit, cette solution permet-t-elle de prendre en compte le cas où E serait variable ? Pour le dire autrement, quelles seraient les conditions à prévoir pour toute orientation E de ;) sur le cercle de centre O?

Merci beaucoup Robic en tous cas, je ne manquerai pas de partager ici le projet un fois abouti, tu pourra te dire qu'il y a une part de toi dedans :)

Robic
Membre Irrationnel
Messages: 1084
Enregistré le: 03 Mai 2013, 11:00

par Robic » 08 Mar 2015, 19:25

Ah ce sont des coordonnées horizontales ! En français on dit azimut et hauteur (en anglais azimuth et altitude, mais altitude signifie hauteur). Sur le dessin on dirait que r est plutôt la distance zénithale, non ? De plus si le dessin représente ce que je crois (*), j'ai des doutes sur ton modèle (j'espère que ce n'est pas la projection d'un truc tridimensionnel). Mais après tout je n'en sais pas assez...

Bref, il manque une donnée. L'angle ;) est l'ouverture du secteur BOC, mais il me manque l'azimut de E. Notons ;) l'azimut de E, c'est-à-dire l'angle orienté (OO, OE). Les coordonnées de P dans mon repère sont :
x = r cos(;)'-;))
y = r sin(;)'-;))

------
(*) Voilà ce que je crois comprendre :
- Une direction d'azimut ;) et de hauteur h est représentée sur le dessin par le point de coordonnées polaires (90°-h, ;)) (par rapport à la direction d'origine O).
- Remarque : l'angle ;) du dessin n'est pas un azimut mais une différence d'azimut (c'est l'ouverture du secteur BOC).
- Dans cette représentation, les angles droits n'ont aucun sens.
- C'est pour ça que je soupçonne un problème dans la modélisation. Mais après tout ce n'est pas le sujet.

Tiorte
Messages: 7
Enregistré le: 08 Mar 2015, 01:05

par Tiorte » 08 Mar 2015, 23:47

Comme je vois que cela t'intrigues, je vais t'en dire plus. :) La finalité de tout ça est de représenter une carte des étoiles visibles à des coordonnées (lat, lng) et à un instant T donné. La représentation dans un cercle trigonométrique est assez naturelle (étant donné les coordonnée azimut et hauteur des étoiles). En effet, dans ce type de cartes, la distance du point (de l'étoile) par rapport au centre O représente sa hauteur (dans le ciel), son angle ;)' sur le cercle représente son azimuth.

Pour exemple : http://dev.awesomedev.com/Constellations/index.php

Le problème que j'ai aujourd'hui, est de représenter une vue dite "horizontale" du ciel. C'est à dire ou un observateur regarderait dans un direction E (d'azimut ;), comme tu dis), avec un champ de vision de largeur ;), et pour l'instant de hauteur R de 0 à 90 (oui, le mec à une vue sacrément large ^^).
Cela implique de ne sélectionner que les points de OCB et de les représenter dans un rectangle (pour des raisons esthétiques). Problème : on se retrouve alors avec une vue en réalité partielle de l'horizon, le champ de vision véritable étant représenté par ABCD.

Si je ne me trompe pas, c'est donc bien un projection tridimensionnelle. Il est possible alors que j'aborde le problème sur un mauvais pied :/ C'est le mieux que j'ai pu trouver sur la base de mes connaissances.

Pour l'instant j'en suis là : http://dev.awesomedev.com/Constellations/horizontale.php?angle=90&azimut=0&altitude=90

Le triangle représenté est tout à fait correct du point de vue de la modélisation, je souhaiterai cela dit le compléter pour peupler tout le rectangle. Si la représentation à posteriori de OCD et OBA m'incombe, je n'arrive à isoler les points de ces zones.

Robic
Membre Irrationnel
Messages: 1084
Enregistré le: 03 Mai 2013, 11:00

par Robic » 09 Mar 2015, 00:55

Tiorte a écrit:La finalité de tout ça est de représenter une carte des étoiles visibles à des coordonnées (lat, lng) et à un instant T donné. La représentation dans un cercle trigonométrique est assez naturelle (étant donné les coordonnée azimut et hauteur des étoiles

Ah, je me doutais de quelque chose comme ça. Des cartes du ciel, c'est quelque chose que je connais, j'en ai déjà fait.

En effet, dans ce type de cartes, la distance du point (de l'étoile) par rapport au centre O représente sa hauteur (dans le ciel), son angle ?' sur le cercle représente son azimuth.

En fait la distance du point par rapport au centre, c'est la distance zénithale, puisque le centre représente le zénith. La hauteur (altitude en anglais), c'est l'angle que fait la direction de l'étoile par rapport à l'horizon, donc c'est 90°-r.

Le problème que j'ai aujourd'hui, est de représenter une vue dite "horizontale" du ciel. C'est à dire ou un observateur regarderait dans un direction E (d'azimut e, comme tu dis), avec un champ de vision de largeur ?, et pour l'instant de hauteur R de 0 à 90 (oui, le mec à une vue sacrément large ^^).
Cela implique de ne sélectionner que les points de OCB et de les représenter dans un rectangle (pour des raisons esthétiques). Problème : on se retrouve alors avec une vue en réalité partielle de l'horizon, le champ de vision véritable étant représenté par ABCD.

Sauf que c'est bien plus compliqué que ça ! Par exemple si à l'horizon on a un azimut de 50° à 90° (centré sur l'azimut 70°), eh bien dès qu'on augmente la hauteur, la fenêtre s'élargit en azimut (parce que les azimut se resserrent (au zénith ils se rejoignent) donc représentent une distance angulaire plus faible). Par exemple à 60° de hauteur, le fenêtre va aller de 30° à 110° d'azimut. Il faudrait que tu dessines ça sur une sphère pour t'en rendre compte. Et à 90° de hauteur, tous les azimuts sont concernés (puisqu'ils se rejoignent).

Regarde cette carte : http://www.astrosurf.com/toussaint/dossiers/coordonnees/equa3.jpg . (Ici il s'agit de coordonnées équatoriales, mais elles jouent le rôle de coordonnées horizontales.) Si tu fixes des azimuts mini et maxi à ta fenêtre, elle ne sera pas rectangulaire. Et si elle est rectangulaire, il n'y a pas de règle simple pour délimiter les azimuts.

Est-il indispensable de savoir à l'avance si une étoile sera dans la fenêtre ou pas ? Moi, ça ne m'a jamais gêné. Précisons... Pour moi il y a deux étapes :
1 - Convertir les coordonnées équatoriales en coordonnées horizontales. À ce stade, je calcule la hauteur, et si elle est positive, je calcule l'azimut.
2 - Convertir les coordonnées horizontales en coordonnées par rapport à la carte. C'est à ce stade, à partir de ces coordonnées (et pas des précédentes), que je détermine si je suis bien dans la carte (par exemple si l'origine est en bas à gauche de la feuille, je regarde si 0 <= x <= 21 et si 0 <= y <= 29,7 pour une carte A4). Si oui, je dessine le point.

On dirait que tu voudrais tester si le point est sur la carte dès le début, dès l'étape 1. Pas besoin, et de toute façon c'est trop difficile.

(PS : je n'ai pas réussi à me connecter sur les liens que tu as donnés.)

Tiorte
Messages: 7
Enregistré le: 08 Mar 2015, 01:05

par Tiorte » 09 Mar 2015, 01:53

Je ne connaissais pas cette notion de distance zénithale, merci ! Dur dur de mettre les main dans l'astronomie du jour au lendemain :)

J'ai pu me rendre compte en effet qu'il y a là un petit casse-tête. C'est par OCD et OBA que j'essaye justement de prévoir cette écartement du champ de vision en terme d'azimuts.

Il est vrai qu'il n'est pas du tout indispensable de discriminer les étoiles à partir de leur coordonnées horizontales. En revanche, comment est-ce que tu procèdes pour "Convertir les coordonnées horizontales en coordonnées par rapport à la carte" ?

L'idéal c'est ça : https://www.fourmilab.ch/cgi-bin/Yourhorizon?lat=47.0000&ns=North&lon=7.000&ew=East&fov=45.000&azimuth=0.000&date=0&utc=2015%2D03%2D09+0%3A27%3A18&jd=2457090%2E51896&azideg=0%B0+%28N%29&coords=on&moonp=on&deep=on&deepm=3%2E0&consto=on&constn=on&constb=on&limag=5%2E5&starn=on&starnm=3%2E0&starb=on&starbm=3%2E5&showmb=%2D1%2E5&showmd=6%2E0&terrain=on&terrough=0%2E7&scenery=on&imgsize=512&fontscale=1%2E0&scheme=0&elements=

Je met des captures d'écrans de mes liens que tu n'a pas pu afficher:
Image

Robic
Membre Irrationnel
Messages: 1084
Enregistré le: 03 Mai 2013, 11:00

par Robic » 09 Mar 2015, 04:15

En revanche, comment est-ce que tu procèdes pour "Convertir les coordonnées horizontales en coordonnées par rapport à la carte" ?

C'est ce qu'on appelle une projection.

Supposons que la carte s'affiche sur une feuille A4 et que l'origine du repère est située en bas à gauche (c'est le cas en langage postscript). On a donc 21 cm de large et 29,7 cm de haut à partir de l'origine. Je cherche (x,y) en cm.

Supposons qu'on dispose de l'azimut a et de la hauteur h, ou de la distance zénithale z (=90° - h).

- Exemple 1 : pour obtenir ce genre de carte : http://www.astrosurf.com/d_bergeron/astronomie/Bibliotheque/Observation_satellites/ha-noss6.jpg .

Le disque fait 180° de diamètre, donc on peut choisir comme échelle 0,1 cm par degré. Je choisis comme toi de mettre l'azimut 0° vers le haut. Ça donnera :
x = 10,5 - 0,1 z. sin a
y = 14,85 + 0,1 z. cos a
(Le zénith est placé en (10,5 ; 14,85).)

C'est une projection polaire.

- Exemple 2 : pour représenter une fenêtre visant l'horizon, on va utiliser une projection différente. Voici une projection rectangulaire simpliste (les méridiens d'azimuts et les parallèles de hauteur forment une grille rectangulaire, ça va étirer les constellations en hauteur).

Je note A l'azimut vers lequel on vise, u l'échelle (en cm par degrés) et Z la hauteur sur la carte (en cm) de l'horizon.

x = 10,5 + u (a - A)
y = Z + u h

- Exemple 3 : utilisation d'une projection azimutale. C'est celle de ton lien « idéal ». Mais les formules sont nettement plus compliquées ! (À vrai dire je n'utilise jamais cette projection. Je lui préfère une projection conique, mais elle dessine un horizon courbe, ce qui n'est peut-être pas très esthétique.)

- Exemple 4 : c'est une projection que j'ai imaginé il y a quelques années. Je suis sûr qu'elle existe déjà, mais je ne connais pas son nom.

Principe : on se donne le point du ciel qui est visé. Par exemple on vise (A, H). Ce point sera positionné sur la carte de façon à être centré en x, et de hauteur Z par rapport à l'axe des y. Pour chaque étoile, on calcule la distance angulaire (;)) à ce point ainsi que l'angle de position (;)) par rapport au zénith. Cette projection donne un effet similaire à une projection azimutale. En particulier si le point visé est à l'horizon, celui-ci sera rectiligne.

cos ;) = sin h. sin H + cos h. cos H. cos(a-A).
(Je n'arrive plus à retrouver la formule de l'angle de position...)

Sur la carte on aura :
x = 10,5 - u. ;). sin ;)
y = Z + u. ;). cos ;)
(il me semble).

Tiorte
Messages: 7
Enregistré le: 08 Mar 2015, 01:05

par Tiorte » 17 Mar 2015, 15:26

Bonjour Robic, long time no see !

J'étais parti à la conquête de la projection, azimutale et polaire, j'ai tout fait. Il en existe beaucoup de formules variées sur Internet, en effet toutes très complexes. Jusqu'à ce que je tombe sur un site très simple qui contrairement aux autres m'a donné des résultats ! https://www.uwgb.edu/dutchs/structge/sphproj.htm

Finalement j'ai choisi de garder la projection polaire pour le cercle, et j'ai adopté une projection stéréographique pour l'horizon.

Encore merci pour ton aide !

Image

Robic
Membre Irrationnel
Messages: 1084
Enregistré le: 03 Mai 2013, 11:00

par Robic » 17 Mar 2015, 15:39

Wahou, tu as bien bossé ! Je trouve que la projection de droite étire les constellations (elles semblent toutes déformées dans le sens de la longueur), n'y aurait-il pas une erreur de calcul quelque part ? Autre critique : les liens entre les étoiles sont assez originaux, parfois un peu trop même (par exemple le carré de Pégase n'est pas un carré...)

Mais tout ça en seulement huit jours, chapeau !

Tiorte
Messages: 7
Enregistré le: 08 Mar 2015, 01:05

par Tiorte » 17 Mar 2015, 16:31

C'est à dire que je dois avoir fini dans 2 semaines, faut pas que ça traîne ! :)

C'est tout à fait possible qu'il y ait une déformation, dans l'état des choses je fait correspondre strictement la zone de la sphère à projeter, aux dimensions du plan, sans prendre en compte les proportions. Un point à améliorer que tu n'aura pas tarder à débusquer ^^

Les motifs des constellations sont en effet ... exotiques. J'ai utilisé la base de Star Chart, qui dérive de H.A. Rey je crois bien. J'aurai aimé trouver une base plus "classique", mais je vais devoir transformer les liens à la main faute de source exploitable.

Tiens, une dernière chose : mettons que j'ai une étoile E(ra, dec), et que je veuille trouver des coordonnées lat, lng (géographiques) telles que H(E), hauteur de E, vaille 90 ? L'idée étant de centrer l'observateur sur cette objet. Je suis là-dessus en ce moment, j'imagine qu'il faut se baser sur l'angle horaire ou le temps sidéral.

Robic
Membre Irrationnel
Messages: 1084
Enregistré le: 03 Mai 2013, 11:00

par Robic » 18 Mar 2015, 03:19

Pour qu'une étoile soit à 90° de hauteur, il faut qu'elle passe au méridien (donc que son ascension droite soit égale au temps sidéral - ou encore que son angle horaire soit nul) et que la latitude soit égale à la déclinaison.

Le temps sidéral se calcule à partir de l'ascension droite et la longitude, donc il y a juste une équation à écrire (d'inconnue la longitude). Je ne connais plus par coeur la formule, on doit facilement la trouver avec Google, mais elle dépend du "temps sidéral pour Greenwich à 0h TU" qui, lui, se calcule de façon plus compliquée (quoique tu n'as pas besoin d'une précision folle je pense).

Plutôt que de rechercher les algorithmes, je te propose de regarder mes fonctions écrites en C (je me suis fait il y a quelques années une bibliothèques de fonctions à partir du livre ""Astronomical formulae for calculators" de Jean Meeus), tu en déduiras les algorithmes qui te sont utiles.

La première fonction calcule le temps sidéral à Greenwich à 0h TU, c'est indispensable. La deuxième le calcule pour l'heure d'observation. Et la troisième calcule le temps sidéral : tu devras adapter l'algorithme puisque, pour toi, l'inconnue est la longitude.

Code: Tout sélectionner
#define MULTSID  1.002737909 // facteur multiplicatif pour convertir en temps sidéral

/* Temps sidéral moyen de Greenwich à 0h TU */

double tsidgr0( const double tt )

/* Entrée :
   tt : nombre de siècles juliens écoulés depuis la date
   (utiliser la fonction tsjul pour le calculer une fois pour toutes)
   
   Sortie :
   tsidgr0 : temps sidéral de Greenwich à 0h TU pour la date (décimale)
   --> il est donné en heures.

   Remarque : le « temps sidéral de Gr. à 0h TU » pourrait se calculer à toutes
   heures. C'est pourquoi la date est a priori décimale. Mais la démarche de
   Meeus consiste à le définir uniquement pour 0h TU.
*/

{
double x ;  // valeur à retourner
x = fmod( 6.6460656 + tt * ( 2400.051262 + 0.00002581 * tt ) , 24.0 ) ;
if (x  en heures
   heure : heure décimale (entre 0.0 et 24.0) pour l'instant considéré
       --> en heures

   Sortie :
   tsidgr : temps sidéral de Greenwich à 0h TU pour la date et l'heure
*/

{
double x ;   // valeur à retourner
x = ts0 + MULTSID * heure ;
if ( x > 24.0 ) x -= 24.0 ;
return( x ) ;
}

/* Temps sidéral local */

double tsidloc( const double tsgr, const double lon )

/* Entrée :
   tsgr : temps sidéral de Greenwich à un instant donné
        --> en heures
   lon  : longitude
        --> en heures (+ à l'ouest / - à l'est)

   Sortie :
   tsidloc : temps sidéral local à l'instant donné
        --> en heures

   Remarque :
   - si tsgr est un temps sidéral moyen, tsidloc est aussi moyen ;
   - si tsgr est un temps sidéral apparent, tsidloc est aussi apparent.
*/

{
double x ;   // valeur à retourner
x = fmod( tsgr - lon , 24.0 ) ;
if ( x < 0.0 ) x += 24.0 ;
return( x ) ;
}

Tiorte
Messages: 7
Enregistré le: 08 Mar 2015, 01:05

par Tiorte » 02 Avr 2015, 10:08

Bonjour Robic, encore une fois ça fait longtemps ! Tu avais bien raison, en posant les choses à plat ça parait d'ailleurs presque évident :

Latitude = Declinaison
Longitude = GST0 - Ascension Droite

J'avais déjà en poche le super Astronomical Algorithm de Meeus. Il m'a donné du fil à retordre mais j'ai toutes les formules au point normalement.

J'ai présenté mon projet qui a particulièrement plu au jury, tu peux le voir ici. Attention gourmand en ressources ! C'est pas aussi abouti qu'on le souhaité, mais pas plus de temps. (ce sera pas en ligne très longtemps)

Encore merci, je repasserai à l'occasion si besoin :)

Robic
Membre Irrationnel
Messages: 1084
Enregistré le: 03 Mai 2013, 11:00

par Robic » 02 Avr 2015, 12:59

Je viens d'aller voir ça, c'est drôlement bien fait ! En plus on peut se déplacer à la souris. J'aime bien la représentation des grilles de coordonnées, très discrète mais présente.

mathelot

par mathelot » 03 Avr 2015, 07:32

Pour commencer, un schéma :
http://dev.awesomedev.com/sky

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 43 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite