gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 04:00:08 24 4
gpt4 key购买 nike

我有一个由两个三维 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com