Cartographie avec VB

cs_Maritime Messages postés 69 Date d'inscription dimanche 16 mars 2003 Statut Membre Dernière intervention 14 mars 2015 - 25 août 2004 à 20:00
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 - 18 nov. 2004 à 18:42
Bonjour,

J'ai un problème graphique a résoudre, Il s'agit de tracer des droites dont on connait les equations et les pentes.
Quelle est la meilleur méthode sous Vb pour afficher une portion
de carte marine "canevas mercator"en visualisant les latitudes
et les longitudes.

3 réponses

Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 1
12 nov. 2004 à 15:07
Hello, ça fait un bail que t'as posé ta question mais, apparement, il vas falloir que tu develope un peu pour obtenir une réponse , voila quelques questions qui m'aiderai à comprendre :

- Est ce que le tracé de courbe dont on connait la fonction et la dérivée et l'histoire de la carte marine on quelque chose à voire ?
->D'aiileurs, si c'et des droites, avoir des infos sur la pente ne sert à rien si on à l'equation...

- Est-ce que la carte marine que tu veux afficher est une image ? (Au contraire, est-ce que c'est les courbes ?)

- Le caneva mercator est il comme je le pense une déformation à appliquer sur tous les points de la carte ?

- L'affichage des lattitudes et des longitudes doit-il être fait par un tracé de courbes corespondant aux latitudes (et logitudes) constantes ?

Et voila, si par hasard tu n'as pas encore résolu ton problème, ces quelques infos nous permettront peut-être de répondre...

A+
;) Flachy Joe ;)
0
cs_Maritime Messages postés 69 Date d'inscription dimanche 16 mars 2003 Statut Membre Dernière intervention 14 mars 2015 2
14 nov. 2004 à 22:27
Enfin quelqu'un qui s'intéresse a mon problème !
Le problème n'a aucune relation avec les dérivées, certes
J'ai posé une question dans le forum sur la méthode itérative
De Newton-Raphson où il y a une affaire de dérivée
Mais cela est une autre histoire.

Je réponds a tes questions :
Les droites sont de la forme y = ax + b
La pente dans le cas de la droite de hauteur
S'obtient a partir de l? azimut de la droite
Pentecotan(90+Az) - tan (Az), car la droite

Qui est le lieu de position est perpendiculaire
A l'Azimut de l? astre observé.

Ce que je veux afficher, c'est une portion de la carte marine
Approximativement un carré de 1 a 3 degrés de coté
C'est à dire une grille de 1 à 3 degrés de coté
dont les lignes et les colonnes sont espacés de 5 en 5 minutes d'arc.

La projection MERCATOR s? apparente à la projection
Cylindrique on projette géométriquement chaque point
De la sphère sur un cylindre tangent à l'équateur
1)Les méridiens sont régulièrement espacés.
2)Les parallèles ont des écartements croissants
Quand on s'éloigne de l'équateur, c'est la latitude croissante.

Y = u * Lambda

La grandeur u appelée unité de la carte, est la longueur en millimètres représentant sur la carte une minute de longitude.

Lambda(?)= (180*60/Pi) * Ln Tan(Lat/2 + 45)

L'ordonné Y du point a comptée depuis l'équateur
Est donc fonction linéaire de la latitude croissante Lambda.
Graphiquement l'écart entre les parallèles est de plus en plus
Grand à mesure que l'on s'éloigne de l? équateur,

En résumé , La « minute de latitude croissante »est une unité
Variable avec la latitude et égale à u/cos(Lat) ;

sur la projection Mercator :
- la longueur d'une minute de longitude est constante et égale à u
- la longueur d'une minute de latitude est variable et égale à u/cos(Lat).

Il apparaît que les déformations sont très grandes dès que l'on dépasse la latitude de 60°.
Les pôles sont rejetés vers l'infini et ne sont pas représentés.

A+ Maritime ;)
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 1
18 nov. 2004 à 18:42
Tu as donc à tracer des droites verticales à intervales constants et des courbes y=u/cos(x) avec x,y les coordonées sur ton image, c'est ça ?

pour les droites verticales utilise simplement :

for x=0 to picture1.scalewidth step interval
picture1.line (x,0)-(x,picture1.scaleheight),color
next

avec "interval" qui dépend de la taille de ton image et du nombre de droites à tracer (met d'ailleur la propriété scalemode de ta picturebox à vbpixels, sinon la boucle risque d'être très longue...).
pour les courbes horizontales :

for x=0 to picture1.scalewidth
y= u/cos(x)
picture1.pset(x,y),color
next

tu met la boucle des courbes autant de fois que tu veut en mettant y=y+y0 (donc boucle sur y0)...

Si c'est pas ça, mail moi (flachyjoe@hotmail.com), ça sera plus pratique, et apparement personne n'en n'a rien à faire de ton prob donc on frustera personne de la réponse...

;) Flachy Joe ;)
0
Rejoignez-nous