我不知道如何处理这个问题,因为我使用的是具有平面数据结构的API,它基本上是原点,x y和z矢量定义了一个平面。
如果我有两架飞机,我怎样才能找到平分机? 这种飞机是否有数学描述。
几何上我会通过计算平面之间的交叉线来解决这个问题,然后不知道如何定义平面方向的点。
非常感谢任何帮助。
在我尝试这样的事情之前,这就得到了我想要的东西,但我想知道是否有一个没有做交叉的解决方案:
public static Plane BisectorPlane(Plane a, Plane b)
{
Rhino.Geometry.Intersect.Intersection.PlanePlane(a, b, out Line lnA);
a.Translate(a.ZAxis);
b.Translate(b.ZAxis);
Rhino.Geometry.Intersect.Intersection.PlanePlane(a, b, out Line lnB);
return new Plane( lnA.From,lnA.To,lnB.PointAt(0.5));
}
我想知道是否有可能解决这个问题不是几何上的(计算交叉点)而是数学上的。
答案 0 :(得分:0)
你已经有了一条交叉路口。现在选择此行的任何一点 P 来制作基点。
获取此行的方向向量( dL )
获取给定飞机 S 的单位法线的总和。这是位于平分线平面并垂直于交叉线的矢量
S =(a .normal + b.normal)
现在计算 dL 的vector product和 S 以获得正常
BisectorN = dL x S
如果需要,将其标准化(使单位长度除以其长度)
bN = BisectorN.Normalize
基点 P 和正常 bN 定义平分线平面。
答案 1 :(得分:0)