Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Calculer les coordonnées d'un point en perspective

Posté par
Dreamkey
08-02-10 à 17:06

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

Calculer les coordonnées d\'un point en perspective Calculer les coordonnées d\'un point en perspective

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


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.

...

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

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.

Posté par
pgeod
re : Calculer les coordonnées d'un point en perspective 12-02-10 à 20:09

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..


...

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

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

Posté par
pgeod
re : Calculer les coordonnées d'un point en perspective 12-02-10 à 22:33

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))

...

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

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 ?

Posté par
pgeod
re : Calculer les coordonnées d'un point en perspective 14-02-10 à 17:44

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 ?

...

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

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:
Calculer les coordonnées d\'un point en perspective Calculer les coordonnées d\'un point en perspective



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !