现在我们来解决这个算法中最关键的地方,就是z精度问题。通过比较z相等的做法其实是不可靠的,但是为了初步的说明算法的求交方式,先那样说便于理解。, `+w9X s8e7|;E
5X(t#p) }1T)H0R/O
因为很有可能恰好三角形和光线的交点没有投影。能投影的是三角形略大或略小的点值。但是我们可以设计这么一个方法来解决这个问题。就是if 三角形“投影点的z值减去线对应点的z值”,(此时减法后得出的绝对值)小于一个阀值时,记录下这个三角形点值。因为说明三角形那一点和线的点挨得非常近。! f3g U/w.U)J
*W#X0I3n+m
那么就有。假如线和三角形相较,那么三角形和线重叠的部分必有两点z做减法之后正负符号相反。假如符号不相反就是不相交。假如减法结果为0也相交。用文字表述非常累赘。画图说明:
[ 本帖最后由 adsl2048 于 2010-7-1 10:50 编辑 ] |