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
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).
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!
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.
- 1. Vecteurs pour un monde 2D/3D en Java
- 2. Cadre de dessin 2D Java
- 3. Tentative d'utilisation d'Ortho pour le dessin 2D
- 4. Dessin 2D avec SlimDX
- 5. Dessin 3D Canvas utilisant à la fois le contexte 2D et 3D
- 6. Dessin 2D avec Android
- 7. Graphique linéaire 3D en Java
- 8. Trier tableau 2d en tableau 3d PHP
- 9. Dessin 3D en Python avec OpenGL
- 10. Inverser les points 2D en 3D
- 11. Convertir tableau 2D en 3D avec PHP
- 12. Ombres douces en Raytracing 3D à 2D
- 13. Redessiner QGLWidget avec des graphiques 3D + 2D
- 14. Calcul d'angles 2D pour des objets 3D en perspective
- 15. Vecteur 2D au vecteur 3D
- 16. Dessin 2D dans NetBeans 6.x
- 17. Dessin 2D efficace sous Android
- 18. Comment dessiner une superposition 2D sur une scène 3D Java?
- 19. Transformation d'image Java
- 20. Dessin Arc en Java
- 21. Comment je peux calculer 2d bounding box avec la transformation 3D
- 22. Dessin 3D dans Canvas avec HTML + JS
- 23. Langue (s) appropriée (s) pour les simulations en modélisation?
- 24. Dans XNA/WP7, dessiner 2D sur 3D crée un rendu 3D bancal pour moi
- 25. Mappage d'un objet 2D sur l'espace 3D, maintining 2D size
- 26. 2D LinkedList.contains() en Java
- 27. Essayer de convertir une image 2D en objets 3D en Java
- 28. Recherche de chemin dans un environnement 3D en Java
- 29. Méthode efficace pour convertir un bitmap 2D en un modèle de cube 3D?
- 30. Dessin de lignes 3D dans WPF