【发布时间】:2010-11-07 11:51:48
【问题描述】:
我有一个由两个 3 维向量组成的“盒子”。一个用于前左下角,一个用于后右上角。
有没有什么简单的方法可以检查第三个三维向量是否在这个“盒子”内的任何地方?
首先我写了类似(伪)的东西:
p = pointToCompare;
a = frontLowerLeft;
b = backUpperRight;
if(p.x >= a.x && p.x <= b.x && p.y >= a.y ...
但这只有在所有坐标都是正数的情况下才有效,但并不总是如此。我应该做类似上述的事情,还是有更好/更简单的方法来做这个计算?
如果您想知道,这就是 Vector 和我正在使用的方法:http://www.jmonkeyengine.com/doc/com/jme/math/Vector3f.html
【问题讨论】:
-
这种方法甚至适用于负坐标!唯一不适用的情况是,如果您的框坐标不是真正的前左下和右上。
-
这对我来说听起来不太确定。是否假定框是轴对齐的?
-
我错了。所描述的方法即使在负坐标下也适用。是的,盒子是轴对齐的。
-
一个向量在一个盒子里是什么意思?当您说“矢量”时,您的意思是“点”吗?
-
是的,我的意思是。位置由三维向量定义的点。
标签: java math 3d vector jmonkeyengine