我正在寻找适当的转换方式,使2D图像看起来像3D绘图。如果我在一张纸上画一条带有平行线的“道路”,然后将页面的顶部向你远离倾斜,使道路看起来消失在远处,这就是我要寻找的效果。
我正在使用Java,并需要一个适当的API /库。我不认为“AffineTransformation”可以实现这一点。
您不需要使用AffineTransformation,因为它始终会保留平行线,而这不是您想要的。
幸运的是,Java高级图像API(javax.media.jai
)正好有您需要的东西,即PerspectiveTransform
类(单击该链接以获取文档)。
我不能给你一个简单的答案,但我可以告诉你,你想要绘制的是双点透视。有了这个信息,也许你能找到一个库,它可以将3D对象转换成透视图。
这里有一个简单的Java小程序,我之前见过,演示了双点透视: 链接
希望这可以帮到你!
你的问题并不是微不足道的,但肯定是可以解决的。你可以取任何四边形图像并应用3D透视变换。只是不要期望它是一行代码。
我现在在家里(当然,在睡觉前检查SO :D),但我几乎100%确定这是我用来找到C#中适当代码的网站:
http://ryoushin.com/cmerighi/en-us/61,2007-10-29/Image_Distortion_Enhancements.aspx
将其移植到Java应该相当简单。如果链接无法解决您的问题,请告诉我,明天我会编辑我的答案并提供更多信息。