这里有一些扭曲三角形棱镜的例子。
我想知道一个移动的三角形是否会达到某一点。这就是我需要解决这个问题的原因。
这个想法是一个带有随机坐标的三角形成为另一个随机三角形,其顶点都在那之间移动
相关:How to determine point/time of intersection for ray hitting a moving triangle?
答案 0 :(得分:0)
我的一个学生在Mathematica制作了这个小动画片。
<小时/> 它显示了棱镜向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