GLM:获取平面线交点的位置 我对C++的GLM库很陌生,所以我面临一些问题。 我有一个由一个位置和两个跨越向量组成的平面,以及一条包含其位置和方向的线-所有值都是glm::vec3 struct Plane { glm::vec3 position; glm::vec3 spanVec1; glm::vec3 spanVec2; } struct Line { glm::vec3 start; glm::vec3 direction; }

GLM:获取平面线交点的位置 我对C++的GLM库很陌生,所以我面临一些问题。 我有一个由一个位置和两个跨越向量组成的平面,以及一条包含其位置和方向的线-所有值都是glm::vec3 struct Plane { glm::vec3 position; glm::vec3 spanVec1; glm::vec3 spanVec2; } struct Line { glm::vec3 start; glm::vec3 direction; },c++,vector,glm-math,C++,Vector,Glm Math,现在我需要两者的交点。 我知道我可以用一个线性方程找到点,但我想确保没有glm的内置解决方案可用,这样我就不必编写自己的扩展(主要是由于性能原因) 那么,在图书馆里有没有一种方便的方法可以做到这一点呢?或者至少库中包含某种线性方程求解 PS:glm::gtx::intersect函数不是我要找的,因为我需要交点,而那些函数只返回它们是否相交(boolean) 可以通过调用该例程两次(一次使用Line.direction,一次使用-Line.direction)来构建光线平面交点。不是最有效的选择

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

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

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

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

请注意,
intersectRayPlane
不会直接返回相交位置,但最后一个(输出)参数是沿光线到相交位置的距离。因此,您可以使用orig+intersectionDistance*dir

中的大多数函数获取交点位置,并将其作为输出参数返回给您。