1

假设我有一个三维的三角形,并且我知道每个点的坐标 (x,y,z) - 我将如何找到位于该三角形内部的任何点?假设我知道我想要的点的 x 和 y,我将如何找到 Z?

编辑:alfasin 的答案最接近解决方案 - 我使用这三个点来构建平面方程

a(x-x0) + b(y-y0) + c(z-z0) = 0

其中 (a,b,c) 是法线向量并插入我的值并求解 Z。感谢大家的帮助。

4

2 回答 2

0

您可以通过将 3 个点应用于以下内容来找到表示曲面的方程:

ax+by+cz+d = 0 

在你找到 a、b 和 c 之后,你就有了表面 - 所以第一件事是检查点 P 是否在表面上。如果是,我们仍然需要检查它是否在三角形上。

为此,我们将创建一条穿过 P 的对角线,到达每个边缘,或者更准确地说,到“包含”边缘的线性方程(请原谅我的英语不好 - 我在我的母语,请多多包涵)。

这可以通过获取每对点(来自三角形)来完成,例如A=(x1,y1,z1)B=(x2,y2,z2)并将它们分配给第一个方程。我们将得到一个线性方程:

y = mx + n.

mincline- 所以对角方程将有

m' = -1/m

并且由于我们知道 的值,P我们可以使用两者来找到 的值n。现在我们有了两个方程,我们可以找到两条线上都存在的点。我们称这个点为 P'。

很容易找到 P' 是否在A和之间B。如果是(对于每一对!) - 那么 P 在三角形内,否则,它不是。

例子: 在此处输入图像描述

于 2013-09-17T23:31:22.497 回答
0

如果您的三角形由三个点 T1、T2、T3 组成,并且您要查找的点是 P,则可以在线之间进行叉积:

(T1, T2) x (T1, P) = R1

(T2, T3) x (T2, P) = R2

(T3, T1) x (T3, P) = R3

如果合成线 R1、R2、R3 是平行的,那么我会假设该点在三角形内。有人可以验证/反驳这一点吗?

[编辑]:这是查找线是否平行的资源:https ://math.stackexchange.com/questions/194242/decide-whether-two-lines-are-parallel

但是你问题的第二部分暗示你试图让一个点适合一个三角形?这个对吗?请原谅缺乏评论——我目前没有这样做的信心。

于 2013-09-17T23:11:57.337 回答