本帖最后由 panhao1 于 2011-2-24 17:07 编辑
犀牛中平面用4个参数来表示:(a,b,c,d) 平面上所有的点(x,y)满足A x + B y + C z + D = 0 而一条线可以用线上的两点表示P1(x1,y1,z1),P2 (x2,y2,z2) 如果两点相交的话
P = P1 + u (P2 - P1) A (x1 + u (x2 - x1)) + B (y1 + u (y2 - y1)) + C (z1 + u (z2 - z1)) + D = 0
U的值如果为0到1 则交点在P1和P2之间 如果分母为0那么线就和平面平行或在平面上
我们来看opennurbs.dll里的线和面 线的属性 form 和 to 平面的属性 x,y,z,d
相切会怎样呢
Returns FALSE unless intersection is a single point If returned parameter is < 0 or > 1, then the line segment between line.m_point[0] and line.m_point[1] does not intersect the plane
C#
public bool ON_Intersect( ref IOnLine line, ref IOnPlane plane, double% t);
Visual Basic
Public Function ON_Intersect( ByRef line As IOnLine,ByRef plane As IOnPlane, t As double%) As bool
Parameters
| Description
| double% t
| [out]parameter on line
|
是不是完全相同呢?
|