如何查看对象是否在4个点内

时间:2018-02-01 06:45:58

标签: c# unity3d math

(我再次问这个) 大家好,我有一点问题,基本上我做了这个简单的脚本,检测蓝色钻石是否在四个球体内(见下图),它的效果非常好,但是我不喜欢它。知道如何制作它,这样当你将四个球体旋转90度时,它仍会检测到它是否在里面,我认为我必须使用TransformDirection,但我不知道在哪里实现它,这里是脚本:https://hastebin.com/perevejoku.cs

这里有一些我正在谈论的视觉: enter image description here 当我说旋转时,这就是我的意思: enter image description here 我认为这可以帮助我,但我不知道如何实施它https://math.stackexchange.com/questions/190111/how-to-check-if-a-point-is-inside-a-rectangle

1 个答案:

答案 0 :(得分:3)

AB AC ABxAC (交叉产品)向量为基础分解载体 AP ,其中P为菱形坐标,B,A,C是三个相邻球体。

如果基础中的坐标t,u,w满足这样的条件:

 t in range 0..1
 u in range 0..1
 w is 0

然后P点位于由球体形成的矩形平面中,位于矩形范围内。

AP.x = P.x - A.x //same for y,z
//same for AB, AC
Normal = CrossProduct(AB, AC)

system of linear equation for unknowns t,u,w:
t * AB.x + u * AC.x + w * N.x = AP.x
t * AB.y + u * AC.y + w * N.y = AP.y
t * AB.z + u * AC.z + w * N.z = AP.z