gpt4 book ai didi

c++ - GLM : Get position of plane-line-intersection

转载 作者:太空狗 更新时间:2023-10-29 21:13:45 27 4
gpt4 key购买 nike

我对 C++ 的 GLM 库还很陌生,所以我遇到了一些问题。我有一个由一个位置和两个跨 vector 组成的平面,以及一条包含它的位置和方向的线 - 所有值都是 glm::vec3

struct Plane {
glm::vec3 position;
glm::vec3 spanVec1;
glm::vec3 spanVec2;
}

struct Line {
glm::vec3 start;
glm::vec3 direction;
}

现在我需要两者的交点。我知道我可以用线性方程找到点,但我想确保没有来自 glm 的 INBUILD 解决方案可用,这样我就不必编写自己的扩展(主要是由于性能原因)。

那么在图书馆有没有方便的方法来做到这一点?或者至少该库包含某种线性方程求解?

PS:glm::gtx::intersect 函数不是我要找的,因为我需要交点,而那些函数只返回它们是否相交(boolean )。

最佳答案

glm::gtx::intersect没有线面相交功能,但它有 intersectRayPlane .

您可以通过调用该例程两次(一次使用 Line.direction 和一次使用 -line.direction)来构建射线平面相交。不是最有效的选择,但可能适用于许多应用。

请注意,intersectRayPlane 不会直接返回交点位置,但最后一个(输出)参数是沿射线到交点位置的距离。所以你会得到交点位置 orig + intersectionDistance*dir

关于c++ - GLM : Get position of plane-line-intersection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43117739/

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