如何快速预览3D向量/线条?
我正在忙着从一个工具中读取3D建筑模型,因此生成了一堆Line(p1, p2)
对象,每个对象由两个Point(x, y, z)
对象组成。我想在一个简单的3D查看器中显示这些东西,类似于SVG(我理解的,SVG只支持2D)。
这个读取过程是用Python进行的,具体来说是IronPython。我可以使用一个.NET的查看库,或者把数据写成文本/xml等文件,然后手动在合适的程序中打开结果来查看。
你会用什么格式/工具来查看这些数据呢?
(目前这只是为了调试,所以不需要太高端。简单的线框就可以了!)
我查看过mathplot库,但它似乎只支持绘制函数……
编辑:我最终选择了X3D的方式,并写了一篇小博客文章来介绍怎么做。这里有一个1x1x1立方体的X3D线框文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"
"http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D profile="Immersive" >
<Scene>
<Transform>
<Shape>
<LineSet vertexCount="5">
<Coordinate point="1 0 0
1 1 0
0 1 0
0 0 0
1 0 0"
/>
</LineSet>
</Shape>
<Shape>
<LineSet vertexCount="5">
<Coordinate point="1 0 1
1 1 1
0 1 1
0 0 1
1 0 1"
/>
</LineSet>
</Shape>
<Shape>
<LineSet vertexCount="5">
<Coordinate point="0 0 1
1 0 1
1 0 0
0 0 0
0 0 1"
/>
</LineSet>
</Shape>
<Shape>
<LineSet vertexCount="5">
<Coordinate point="0 1 1
1 1 1
1 1 0
0 1 0
0 1 1"
/>
</LineSet>
</Shape>
</Transform>
</Scene>
</X3D>
4 个回答
1
我不是3D编程方面的专家,但有一个简单的小技巧可以分享。
如果你把z
轴想象成垂直于你的屏幕,那么你可以用下面的方式来投影一个3D点(x, y, z)
:(zoom_factor*(x/z), zoom_factor*(y/z))
1
你可以试试这个叫做 PyQwt3D 的软件包。如果这个不行的话,这里有一个 其他有用的Python软件包列表,你可以看看。
1
如果你想了解如何通过写文件的方式来处理,可以看看X3D,它是VRML的升级版。另外,你也可以查看这份矢量图形标记语言的列表。