gpt4 book ai didi

math - 基于点的线/平面交点

转载 作者:行者123 更新时间:2023-12-04 17:40:33 26 4
gpt4 key购买 nike

我在空间中有两个点,L1 和 L2,它们定义了一条线上的两个点。

我在空间中有三个点,P1、P2 和 P3,它们在平面上有 3 个点。

那么给定这些输入,线在什么点与平面相交?

外汇。平面方程 A*x+B*y+C*z+D=0 是:

A = p1.Y * (p2.Z - p3.Z) + p2.Y * (p3.Z - p1.Z) + p3.Y * (p1.Z - p2.Z)
B = p1.Z * (p2.X - p3.X) + p2.Z * (p3.X - p1.X) + p3.Z * (p1.X - p2.X)
C = p1.X * (p2.Y - p3.Y) + p2.X * (p3.Y - p1.Y) + p3.X * (p1.Y - p2.Y)
D = -(p1.X * (p2.Y * p3.Z - p3.Y * p2.Z) + p2.X * (p3.Y * p1.Z - p1.Y * p3.Z) + p3.X * (p1.Y * p2.Z - p2.Y * p1.Z))

但是剩下的呢?

最佳答案

解决这个问题的最简单(并且非常普遍)的方法是说

L1 + x*(L2 - L1) = (P1 + y*(P2 - P1)) + (P1 + z*(P3 - P1))

它为您提供了 3 个变量中的 3 个方程。求解 x、y 和 z,然后代回原始方程中的任何一个以获得您的答案。这可以推广到做复杂的事情,比如找到 4 维中两个平面的交点。

对于另一种方法,叉积 N(P2-P1)(P3-P1)是与平面成直角的向量。这意味着平面可以定义为点集 P使得 P 的点积和 NP1 的点积和 N .求解 x使得 (L1 + x*(L2 - L1)) dot N这个常数给你一个容易求解的变量中的一个方程。如果您要与这个平面相交很多线,这种方法绝对值得。

明确写出这给出:
N = cross(P2-P1, P3 - P1)
Answer = L1 + (dot(N, P1 - L1) / dot(N, L2 - L1)) * (L2 - L1)

在哪里
cross([x, y, z], [u, v, w]) = x*u + y*w + z*u - x*w - y*u - z*v
dot([x, y, z], [u, v, w]) = x*u + y*v + z*w

请注意,交叉乘积技巧仅适用于 3 个维度,并且仅适用于平面和直线的特定问题。

关于math - 基于点的线/平面交点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4938332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com