Соответствующее преобразование для 3D-вида 2D-рисунка (Java) - PullRequest
4 голосов
/ 09 ноября 2010

Я ищу подходящее преобразование, чтобы 2D-изображение выглядело как 3D-рисунок. Если я нарисую «дорогу» с параллельными линиями на листе бумаги, а затем наклоню верхнюю часть страницы от вас, чтобы дорога исчезла вдаль, это то, что я ищу.

Я использую Java и хотел бы получить соответствующий API / библиотеку. Я не верю, что «AffineTransformation» выполняет это.

Ответы [ 3 ]

3 голосов
/ 10 ноября 2010

Вы не хотите AffineTransformation, поскольку он всегда будет сохранять параллельные линии, а это не то, что вы хотите здесь.

К счастью, Java Advanced Imaging API (javax.media.jai) имеет именно то, что вы хотите, в форме класса <a href="http://download.oracle.com/docs/cd/E17802_01/products/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/PerspectiveTransform.html" rel="nofollow"><strong>PerspectiveTransform</strong></a> (нажмите эту ссылку для просмотра документов).

0 голосов
/ 10 ноября 2010

Ваша проблема не тривиальна, но, безусловно, решаема.Вы можете взять любое четырехстороннее изображение и применить трехмерное перспективное преобразование.Только не ожидайте, что это будет одна строка.

Я сейчас дома (проверяю SO перед сном, конечно: D), но я почти на 100% уверен, что этосайт, который я использовал, чтобы найти соответствующий код в C #:

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

Портировать его на Java должно быть довольно просто.Дайте мне знать, если ссылка не решит ваш ответ, и завтра я отредактирую свой ответ с дополнительной информацией.

0 голосов
/ 10 ноября 2010

Я не могу дать вам простой ответ, но могу сказать, что то, что вы хотите нарисовать, называется двухточечной перспективой.С помощью этой информации, возможно, вы сможете найти библиотеку, которая принимает трехмерный объект и создает вид в перспективе.

Вот простой Java-апплет, который я видел ранее, который демонстрирует двухточечную перспективу: http://mathforum.org/workshops/sum98/participants/sanders/TryPersp.gsp.html

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...