变换2D图像以模仿3D平面上的3D投影

时间:2012-12-05 21:42:40

标签: matrix 3d svg linear-algebra projection

根据SVG规范,您可以将任意2x3变换矩阵应用于任何元素。

http://www.w3.org/TR/SVG/coords.html#TransformAttribute

我想利用这种方法将3D预期投影应用于SVG中的图像,以模拟平面图像的3D投影。

我在javascript中使用矩阵计算将变换和投影应用到3D模型空间坐标(x,y,z)到2D图像空间坐标(x',y')。但是为了将投影应用于SVG中的图像或文本,我需要将3D矩阵投影到2D变换矩阵。

假设图像位于3D模型空间中的任意平面上,图像原点定义为平面上的3D点,如何将我的3D投影矩阵转换为SVG图像上的2D变换

1 个答案:

答案 0 :(得分:0)

使用2x3变换进行3D透视投影在数学上是不可能的。这就是所谓的非仿射变换。这里有更多相关信息:http://www.oreillynet.com/xml/blog/2006/09/wherefore_art_thou_svg.html

您可以使用javascript对原始数据进行此类转换,并将结果显示为SVG图像,但您只能使用SVG显示生成的图形 - 您无法从SVG图像开始。