【发布时间】:2016-09-19 14:14:02
【问题描述】:
我正在尝试用 C# 构建一个程序,该程序生成由梁组成的结构的 3D 模型,然后创建对象的一些视图(正面、侧面、顶部和等距)。
由于我不需要绘制曲面(边缘就足够了),我一直在计算要绘制的每条线,然后用
GraphicObject.DrawLine(myPen, x1, y1, x2, y2)
到目前为止,这工作得很好,但是当我向结构中添加部分时,GraphicObject 的刷新需要太多时间。所以我开始进行线条可见性检查以减少要绘制的线条数量。
我已经搜索了 Wikipedia 和一些关于该主题的 PDF,但我发现的都是表面。所以我的问题是:是否有一种简化的算法来检查物体边缘的可见性,还是我应该采用不同的方法,比如考虑表面?
任何建议将不胜感激,感谢您的帮助。
补充说明/问题:
我目前的做法:
-
计算局部轴上的每个光束(所有顶点)
- => 将它们移动到它们的全局位置
- => 创建一个包含点对的列表(投影并缩放到视图)
- =>
GraphicObject.DrawLine点对列表)
如果我按像素计算视图而不是使用
DrawLine方法,整个事情会更快吗?
屏幕截图显示了它将要执行的结构类型(尚未完全完成):
- 结构视图
- 结构细节
【问题讨论】: