algorithm - 给定两个直角棱柱的角点,找到重叠直角棱柱的角点

标签 algorithm math 3d geometry overlap

如果我在 3d 空间中得到两个直角棱柱的角点,其中一个以 (0,0,0) 为中心,一般来说,找到角点的优雅而有效的方法是什么重叠的直角棱镜,或者如果两个直角棱镜不重叠则什么都不返回?

最佳答案

我假设“重叠直角棱镜”是指两个棱镜的交点。另外,我假设它们是轴对齐的。

棱镜 A 的下界用 [xmina, ymina, zmina] 表示棱镜 B 的下界为 [xminb, yminb, zminb] .同样,将上限表示为 [xmaxa, ymaxa, zmaxa][xmaxb, ymaxb, zmaxb] .

交集非空当且仅当max(xmina, xminb) < min(xmaxa, xmaxb) ^ max(ymina, yminb) < min(ymaxa, ymaxb) ^ max(zmina, zminb) < min(zmaxa, zmaxb)其中 ^意思是“和”。

然后交集的 x 下界和上界由 max(xmina, xminb) 给出和 min(xmaxa, xmaxb) , 对于 y 和 z 也是如此。

关于algorithm - 给定两个直角棱柱的角点,找到重叠直角棱柱的角点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34143553/

相关文章:

python - 区域生长算法

c# - 简单查询 : Does SortedSet<T> have an easy way of finding the median element?

algorithm - Knuth-Morris-Pratt 算法中的前缀函数计算

c++ - 尝试使用矩阵在C++中实现Durand-Kerner-Method

c# - 敌人出现在玩家身后的机会 1 对 5

c++ - 渲染时 3D 立方体出现拉伸(stretch)

java - 如何在 Java 中进行预订遍历?

C++ 高级 3D 坐标到 2D 坐标

javascript - 测试日期集合在哪些范围内不重叠

r - 在 R (X, Y, Z, V) 中进行值插值的 3D