4

根据 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 变换

4

1 回答 1

0

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

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

于 2012-12-05T22:38:57.597 回答