我想知道如何编写一个精确的算法来计算参数表面f : R^2 --> R^3
和三角网格之间相交表面的边界。
我想到了第一种方法:
nStepsU = 100
nStepsV = 100
tolerance=0.01 // pick some sensical value
intersectionVertices={}
for u from minU to maxU in nStepsU:
for v from minV to maxV in nStepsV:
for v in verticesInMesh:
if euclidean distance( f(u,v), v ) < tolerance:
add vertex v in a set
connect the vertices in intersectionVertices with a line strip
draw the vertices in intersectionVertices
该算法非常简单但速度较慢 (n^3),并且没有考虑到网格的地形是基于三角形的,因此输出点是网格的点,而不是利用曲面与三角形的交点计算的点并且严重依赖于必须设置的容差。
有人有更好的主意,或者可以为此目的带我去一个合适的图书馆吗?