2010-11-09 24 views
4

Je suis à la recherche de la transformation appropriée pour que l'image 2D ressemble à un dessin 3D. Si je dessine une "route" avec des lignes parallèles sur une feuille de papier, puis incliner le haut de la page loin de vous, de sorte que la route semble disparaître dans la distance est ce que je cherche. J'utilise Java et je voudrais une API/bibliothèque appropriée. Je ne crois pas que "AffineTransformation" accomplisse cela.Transformation appropriée pour un dessin 2D en 3D (Java)

Répondre

3

Vous ne voulez pas d'AffineTransformation, car cela préserve toujours les lignes parallèles, ce qui n'est pas ce que vous voulez ici. Heureusement l'API Java Advanced Imaging (javax.media.jai) a exactement ce que vous voulez, sous la forme de la classe PerspectiveTransform (cliquez sur ce lien pour docs).

0

Je ne peux pas vous donner une réponse simple, mais je peux vous dire que ce que vous cherchez à dessiner s'appelle perspective en deux points. Avec ces informations, vous pourrez peut-être trouver une bibliothèque qui prend un objet 3D et produit une vue en perspective.

Voici une applet Java simple que je l'ai vu précédemment que démontre la perspective de 2 points: http://mathforum.org/workshops/sum98/participants/sanders/TryPersp.gsp.html

Hope this helps!

0

Votre problème n'est pas trivial, mais certainement résoluble. Vous pouvez prendre n'importe quelle image à quatre côtés et appliquer une transformation de perspective 3D. Ne vous attendez pas à ce que ce soit un one-liner.

Je suis à la maison maintenant (vérifier SO avant d'aller dormir, bien sûr: D), mais je suis presque certain à 100% c'est le site que je trouvais le code approprié en C#:

http://ryoushin.com/cmerighi/en-us/61,2007-10-29/Image_Distortion_Enhancements.aspx

Le portage vers java devrait être assez simple. Faites-moi savoir si le lien ne résout pas votre réponse et je vais éditer ma réponse demain avec plus d'infos.