拥有扭曲三角形棱镜的两个三角形的坐标,我怎么能知道它内部是否有一个点?

时间:2017-05-21 22:10:24

标签: geometry

这里有一些扭曲三角形棱镜的例子。

enter image description here enter image description here enter image description here

我想知道一个移动的三角形是否会达到某一点。这就是我需要解决这个问题的原因。

这个想法是一个带有随机坐标的三角形成为另一个随机三角形,其顶点都在那之间移动

相关:How to determine point/time of intersection for ray hitting a moving triangle?

2 个答案:

答案 0 :(得分:0)

我的一个学生在Mathematica制作了这个小动画片。

<小时/> Schonhart 它显示了棱镜向Schönhardt多面体的扭曲。 请参阅the Wikipedia page的重要性。 很容易确定特定点是否在多面体内。

但它是否在特定的平滑扭曲中,如在你的图像中,取决于扭曲的细节(速率)。

答案 1 :(得分:0)

让底部三角形位于平面z = 0,它具有旋转角度0,顶部三角形具有旋转角度Fi。扭曲棱镜的高度是Hgt。

旋转角度线性地取决于高度,因此高度h的图层具有旋转角度

 a(h) = Fi * h / Hgt

如果点坐标为(x,y,z),则将点移至z=0并将(x,y)坐标绕旋转轴(rx, ry)旋转-a(z)角度

 t = -a(z) =  - Fi * z / Hgt
 xn = rx + (x-rx) * Cos(t) - (y-ry) * Sin(t)
 yn = ry + (x-rx) * Sin(t) - (y-ry) * Cos(t)

然后检查(xn, yn) lies inside bottom triangle