如何在Qt中创建2D对象模型?

时间:2017-10-06 19:20:12

标签: qt qt3d

我目前正在我的Qt程序中渲染3D模型(Wavefront .obj格式)。现在,我在QML中使用Scene3D渲染模型,并且我能够在查看区域中显示它。我想要做的是让用户点击模型并生成我想在不同窗口上绘制的切片的2D横截面。我对3D渲染很陌生,而且很多Qt文档都不是很具描述性。我一直在阅读Qt文档,试验和在线搜索没有运气。如何在Qt 3D中创建3D对象模型的2D切片,最好是在QML中?我可以用什么Qt库或类来实现这个目标?

1 个答案:

答案 0 :(得分:1)

不幸的是,模型存储为一组曲面的事实使得这很难。 QT可能没有内置的方法。

例如,考虑一个由面孔构成的模型可能缺少一个面孔。现在怎么办?你可以从不同的角度一致地插入这个差距吗?横截面可能不会包含任何顶点这一事实呢?

但是,当然,它可以解决。首先,不要允许未封闭的表面(带孔的网格)。其次,为了找到横截面的顶点,在模型的每个边和你正在使用的平面之间进行交叉,如果有一个交点,那么就有一个点。第三,要找到边,请查看顶点列表,并且任何两个来自网格中同一多边形边缘的边应由横截面中的边连接。要找到边缘的方向,请将多边形的法线投影到您使用的平面上。为了填写,我真的不知道该怎么做。我想这就是你想要的。