得到由两个矩形的交点所定义的线段的端点

本文关键字:定义 端点 两个 | 更新日期: 2023-09-27 18:04:48

我尝试了两平面交点线的算法

但都没有返回正确的结果

我在三维中有两个矩形,每个矩形由三个点定义,我想在交点线上得到两个点,使这两个点在交点的末端我执行以下步骤:

  • 将每个矩形转换为两个平面,使用三个点
  • 通过求各平面法线的叉乘得到直线方向

我想要得到在平面边界上的直线的实际端点

敬礼

得到由两个矩形的交点所定义的线段的端点

您提供的链接最有可能有正确的解决方案:)你是否正确地将三个点转换成Ax+By+Cz+D = 0的形式?检查这些点是否都满足这个公式。如果你有正确的{A, B, C, D},那么就很容易计算出链接中描述的其余部分。


这里有一个链接,解释了如何使用3点得到这个公式。


好的,这里有一个简单的总结:

  • 给定空间中的三个点(x1,y1,z1), (x2,y2,z2), (x3,y3,z3),计算如下:

    = y₁(z2 - z3) + y2 (z3 - z1) + y3 (z1 (z2)

    B = z1 (x2 - x3) + z2 (x3 - x1) + z3 (x1, x2)

    C = x1 (y2 - y3) + x2 (y3 - y1) + x3 (y1, y2)

    D = -(x1 (y2 z3 - y3 z2) + x2 (y3 z1 - y1 z3) + x3 (y1 z2 - y2 z1))

    对于两个平面。这意味着你有A1, B1, C1, D1和A2, B2, C2, D2。

  • 使用A, B, C, D计算这个:

    x1 = 0

    z1 = (B2/B1)*D1 - D2)/(C2 - C1*B2/B1)

    y1 = (- c1 * z1 - D1)/B1

  • 这:

    x2 = some value.

    z2 = (B2/B1) * (A1 * x2 + D1) - A2 * x2 - D2)/(C2 - C1 * B2/B1)

    y2 = (- c1 * z2 - a1 * x2 - D1)/B1

基本上就是把那两个链接中描述的两种方式结合在一起。