结构:
struct POINT3D
{
double x, y, z;
};
输入:
一个平面多边形,以顶点数组形式给出。vector<POINT3D> Shape;
一条首尾不相接的空间线,以顶点数组形式给出。vector<POINT3D> Line;
输出:
空间顶点数组,只包括拐点。vector<POINT3D> Loft;
要求:
按照多边形对折线进行放样。
比如给多边型为三角形,给定空间线为直线,则放样为三棱柱,输出两底面六个顶点的坐标。
再如给定多边型为六边形,给定空间线为有三个顶点的垂直折线,输出两个底面的十二个顶点,还有拐点折面的六个顶点。
放样是啥意思?困惑中...
还未学到呢~~
就是把空间多面体展开成为平面图形吧
到也是不容易想的
你老兄的这个好像不是放样,而应该叫做扫描。
放样是对于两个轮廓来说的,而你的这个问题只有一个轮廓,另外一条开放折线
是指导线。
你这个问题对难处理的地方是自相交。如果不要求处理自相交,则很容易计算得到模型。
但是如果要处理自相交,则需要滤裁剪、丢弃不需要的面和缝合。这是一个复杂的过程。
好在你的问题只涉及平面片。
不过这方面的技术好像已经比较成熟的了。老外的几何造型内核做得很好,真不知道他们怎么做的。呵呵。连曲面的都能搞的定!!
============================================================================
提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
http://www.betajin.com/alphasun/ 遇到问题可以给我发消息,给我发信息时请附带原帖地址
http://alphasun.free-host.com/
DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
对于 mesh 的自相交处理,我考虑了一下,可以这么办。
首先是要求的交线。最笨的办法是 O(n^2) 时间复杂度的。为了优化这个过程,可以采用包围盒的方法,时间复杂度可以接近 O(n)。
第二步,沿着交线,丢弃不需要的面。根据法向量就可以判断某一个面片是否需要丢弃。
最后,留下来的面形成拓扑结构,用来表示一张闭合的没有洞的面。
平面片的处理思路基本上是这样。
对于曲面则比较复杂。关键是我还想不出空间曲面求自相交曲线有什么好方法。感觉包围盒的方法也可以用。
不好意思,图形学方面的,没有学好
有无人讨论?
难了点吧。