我目前正在渲染一个3D模型(Wavefront .obj格式)在我的Qt程序中。现在,我使用QML中的Scene3D渲染模型,并且能够将它显示在查看区域中。我想要做的是让用户单击模型并生成我想要在不同窗口上绘制的切片的2D截面。我对3D渲染颇为陌生,并且很多Qt文档都不是很具描述性。我一直在阅读Qt文档,试验和在线搜索,但都没有运气。如何在Qt 3D中创建3D对象模型的2D切片,最好是在QML中创建?我可以使用哪些Qt库或类来实现这一目标?如何在Qt中创建3D对象模型的二维切片?
回答
不幸的是,模型存储为一组表面使得这很难。 QT可能没有内置的方法。
例如,考虑一个由脸部构成的模型可能是缺少的脸部。现在怎么办?你是否可以从不同的角度一直插入这个空白?那么横截面可能不包含任何顶点的事实呢?
但是,当然可以解决。首先,不要让不封闭的表面(与孔啮合)。其次,为了找到横截面的顶点,在模型的每条边与您使用的平面之间执行交点,并且如果有交点,那里就有一个点。第三,要查找边,请查看顶点列表,并且来自网格中同一个多边形边上的任意两个边应该通过横截面中的边连接。要找到边缘应该走的方向,将多边形的法线投影到您使用的平面上。为了填补,我真的不知道该怎么做。我想这就是你想要的。
谢谢,我们能够弄清楚如何使用画布和你所建议的算法来绘制它。一个问题,如果模型缺失的是面或者有漏洞,我们可以做些什么来尝试填补漏洞? – Dillydill123
哇,你有工作吗?凉!要关闭表面,也许你可以使用[ear-clipping](https://www.geometrictools.com/Documentation/TriangulationByEarClipping.pdf)。它可能无法正常工作。如果一张脸在一个完美的网格中颠倒过来,我不知道可以修复它。 –
- 1. 如何创建3D对象
- 2. 在二维numpy阵列中使用3D样式切片
- 3. 如何从列表中创建对象的二维数组?
- 4. 在C中的二维数组切片#
- 5. 如何确定3d对象二维投影中最顶层的对象?
- 6. 如何初始化创建的对象的二维数组?
- 7. 如何创建任意共面3d曲线的二维图
- 8. 如何用3D对象创建UIView
- 9. 原型切片对象
- 10. 创建对象时如何处理二维条件?
- 11. 如何在角2创建模型中对象的阵列它
- 12. 动态3D对象建模
- 13. 如何创建3D模拟?
- 14. 如何切片JavaScript对象?
- 15. 二维绘图中的增强现实3D模型
- 16. 如何在Django视图中创建模型对象?
- 17. 从真实对象创建3D模型以便在Android中使用openGL
- 18. 在Android上创建3D模型
- 19. 我该如何在android应用程序中创建3D对象?
- 20. 当模型对象在MVC3(ASP.NET)创建
- 21. 动态创建模型对象时在模型中设置值
- 22. 试图从VB.NET中的一堆二维图像构建3D对象
- 23. 切片二维numpy的阵列
- 24. 如何在父模型的创建时间保存关联的模型对象?
- 25. 如何从平面相交中从三维几何中提取二维切片?
- 26. 如何创建对现有模型对象的引用?
- 27. 如何在模拟对象内创建一个模拟对象?
- 28. 如何通过Django中的模型类创建一个ContentType模型对象?
- 29. 在SimpleITK中对3D图像的切片进行操作并创建新的3D图像
- 30. 在JSON提供的javascript中创建二维(二维)矩阵
我不认为在Qt中有什么东西 – dtech