logo

Calculer les coordonnées d'un point en perspective


algorithmiqueCalculer les coordonnées d'un point en perspective

#msg2868085 Posté le 08-02-10 à 17:06
Posté par ProfilDreamkey Dreamkey

Bonjour,
je voudrais savoir comment, à partir des coordonnées d'un point sur une surface plane je pourrais calculer son emplacement sur une surface en perspective (et vice-versa).
Je vous ai joint deux images : la première est mon point sur la surface normale, la deuxième est la même mais avec une transformation pour la rendre perspective. Dans cette exemple, le point est centré, donc je pourrais trouver ses coordonnées avec les diagonales, mais ce n'est pas toujours le cas.
J'ai trouvé pour avoir x (faire le rapport entre la largeur où se trouve le point sur la largeur maximale), mais je n'ai aucune idée pour avoir y.

Merci d'avance

re : Calculer les coordonnées d'un point en perspective#msg2868538 Posté le 08-02-10 à 19:46
Posté par Profilpgeod pgeod


J'essayerais bien ceci :

Y = E * arctan (y H)

avec H un paramètre 0
pour lequel + H est grand, + la perspective est accentuée

avec E = Coefficient d'Echelle suivant la dimension de la surface à représenter.

...
re : Calculer les coordonnées d'un point en perspective#msg2875350 Posté le 12-02-10 à 18:26
Posté par ProfilDreamkey Dreamkey

Désolé pour la réponse tardive ; alors voilà ce que j'ai fais :

(111*132)/(150*200)*Arctan(100*1.5)43.77

Ça me semblait à peu près correct, mais si je remplace 100 par 50, j'obtiens 43.58...
J'ai pris 1.5 pour H au hasard, mais le changer me donne toujours un résultat vers 43.

Est-ce qu'il y aurait une autre méthode ? Merci.
re : Calculer les coordonnées d'un point en perspective#msg2875458 Posté le 12-02-10 à 20:09
Posté par Profilpgeod pgeod

Ce serait mieux si tu travaillais en radians pour le arctan (et non en degrés), mais cela ne change rien à un coeff multiplicateur près.
Il faut prendre H petit pour diminuer l'impression de perspective.
en radians... Y = E * arctan (y H)

mettons que ta surface à représenter fasse 200 en y :

H = 1/200 et E = 250
y = 200 --> Y = 196..

le point centrale de la surface à représenter :

H = 1/200 et E = 250
y = 100 --> Y = 116..


...
re : Calculer les coordonnées d'un point en perspective#msg2875509 Posté le 12-02-10 à 20:49
Posté par ProfilDreamkey Dreamkey

Merci mais j'ai tout de même du mal à comprendre : comment est-ce que je peux trouver H et E ? Je possède les coordonnées des 4 points de ma table en perspective (désolé d'avoir omis ce point), cela pourrait aider...
Cependant c'est pour coder sur DS, et la bibliothèque PAlib utilise des angles [url=http://www.palib.info/wikifr/doku.php?id=day6#les_angles_dans_palib]qui vont de 0 à 511[/url], donc utiliser arctan pour calculer mon point me parait impossible
re : Calculer les coordonnées d'un point en perspective#msg2875602 Posté le 12-02-10 à 22:33
Posté par Profilpgeod pgeod

ok. alors je vois ceci :

on simplifie la formule : Y = R * arctan (y/R)
et on en prend une approximation :
Y = R (y/R - y3/3R3) = y(1 - y²/3R²)

puisque tu as les coordonnées des coins de la table dans les 2 systèmes,
tu prends pour R = (dy3 / 3 (dy - dY))

...
re : Calculer les coordonnées d'un point en perspective#msg2877546 Posté le 14-02-10 à 17:08
Posté par ProfilDreamkey Dreamkey

Merci encore, mais je n'arrive pas à trouver le bon résultat. J'ai calculé Y=y(1-\frac{y^2}{3R^2}) avec R=\sqrt{\frac{dy^3}{3(dy-dY)}}, y=100, dy=200, dY=132 (pour rester avec mon exemple du haut) et j'obtiens 91.5 (et en essayant avec R=\sqrt{\frac{dy^3}{3}(dy-dY)}, j'obtiens 100). Est-ce que j'ai mal interprété tes formules ?
re : Calculer les coordonnées d'un point en perspective#msg2877621 Posté le 14-02-10 à 17:44
Posté par Profilpgeod pgeod

Et si tu me donnais les coordonnées des 4 coins de ta table, dans les deux système, en restant dans ton exemple du haut ?

...
re : Calculer les coordonnées d'un point en perspective#msg2877683 Posté le 14-02-10 à 18:09
Posté par ProfilDreamkey Dreamkey

Au temps pour moi, les voilà :

table 1:
(0,0) (149,0)
(0,199) (149,199)

table 2:
(24,32) (125,32)
(0,166) (149,166)

3 points avant/après:
(74,49)->(74,56)
(74,99)->(74,85)
(74,149)->(74,121)

Je remets les images avant/après avec les 3 points:

Répondre à ce sujet

réservé Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster
attention Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.

  • Ce topic

    imprimer Imprimer
    réduire la tailleRéduire   /   agrandir la tailleAgrandir

    Pour plus d'options, connection connectez vous !
  • Fiches de maths



maths haut de pagehaut Retrouvez cette page sur ilemaths l'île des mathématiques
© Tom_Pascal & Océane 2012