java - 检查一个 vector 是否在两个 vector 之间

标签 java math 3d vector jmonkeyengine

我有一个由两个三维 vector 组成的“盒子”。一个用于前左下角,一个用于后右上角。

有没有简单的方法来检查第三个三维 vector 是否在这个“盒子”内的任何地方?

首先我写了类似(伪)的东西:

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

最佳答案

如果你想让它更健壮一点,你可以让它对角的位置不变:

if (a.x <= p.x && p.x <= b.x || b.x <= p.x && p.x <= a.x) {
  // similar to the y- and z-axes.
}

一个更直观(但稍微慢一些)的变体是在每个轴上使用最小值/最大值:

if (Math.min(a.x, b.x) <= p.x && p.x <= Math.max(a.x, b.x)) {
  // ...
}

关于java - 检查一个 vector 是否在两个 vector 之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4117564/

相关文章:

java - 如何在同一个浏览器中打开多个选项卡?

python - 计算四边形的面积

c - 如何在C中连接两个整数

flash - 在 Flash 中渲染等距柱状图像最成熟的库是什么?

Android Matrix.multiplyMV 没有通过翻译改变我的结果

3d - XNA 3d 物理引擎

java - 使用 Spring Security OAuth2 验证不同的用户类型

java - 在 IntelliJ IDEA 中调试内联值

java - 出现异常时到底会发生什么

python - Python 3 中 float 的精确累积和