09-07-2013, 10:48 AM
Citation :il faut bien utiliser les matricesQuelque soit la transformation à faire, si elle peut être faite d'une base (3D orthogonale classique) dans une autre (2D orthogonale qu'est l'écran), alors elle peut se faire par matrice (dite matrice de passage, si les dimensions sont réduites, on parle de matrice de projection, mais l'idée est identique, c'est juste qu'on fait "sauter" une dimension). Cavalière ou en perspective, toute projection peut donc se faire par matrice
Citation :par contre le dessin que tu proposes est un dessin en perspective vraie grandeur (celle que perçois notre œil et qui noues est donc beaucoup plus agréable(géométrie projective))
Tout comme l'exemple qui était donné: on a un effet de perspective du journal. Mais c'est un effet réalisé par "éléments finis": on triangule l'objet et on fait une projection cavalière sur chaque triangle. Chaque triangle a sa propre matrice de projection, et on "s'arrange" pour que ces matrices donnent, au final, un faux effet de perspective. C'est pour cette raison que le texte est déformé: la perspective est discontinue car chaque triangle est en projection cavalière.
Citation :ce que je vais proposer est une perspective cavalière.Tu ne pourras pas faire mieux de toute façon avec setTransform Mathématiquement, la matrice setTransform conserve le parallélisme. Donc, impossible de changer un rectangle (cotés parallèles) en un trapèze (rectangle "en perspective"), dont deux cotés ne sont pas parallèles. Inutile de tourner le problème dans tous les sens, il n'a pas de solution de cette façon, via setTranform.
Citation :la composée de trois rotations autour des axes X, Y et ZPrécise pour les rotations: X puis Y puis Z, axes fixes du plan, ou X Y Z axes liées à l'objet lui-même? Les résultats sont très différents...