gpt4 book ai didi

c++ - 两个 glm::mat4 矩阵的 XYZ 距离点到点

转载 作者:行者123 更新时间:2023-11-28 04:18:42 24 4
gpt4 key购买 nike

我有两个 glm::mat4 模型 View 矩阵,我需要比较两个 xyz 点之间的距离,我试过这段代码,但它似乎不准确;

inline GLfloat Dist3D(GLfloat X1, GLfloat Y1, GLfloat Z1,
GLfloat X2, GLfloat Y2, GLfloat Z2) {
return sqrt(pow((X2 - X1), 2) + pow((Y2 - Y1), 2) + pow((Z2 - Z1), 2));
}
void PlayerScore::CompareMatrixes(
glm::mat4 Target,
glm::mat4 Source) {

GLfloat dist = Dist3D(
Target[3][0], Target[3][1], Target[3][2],
Source[3][0], Source[3][1], Source[3][2]);

printf("Dist to target %f\n", dist);
}

最佳答案

您可以简单地使用 glm::length 来确定两点之间的距离。

glm::vec3 v1 = {2.0, 0.0, 0.0};
glm::vec3 v2 = {6.0, 0.0, 0.0};

auto distance = glm::length(v2 - v1);

std::cout << distance << std::endl; // expected output is 4

glm::mat4 identity(1.0);

glm::mat4 m1 = glm::translate(identity, v1);
glm::mat4 m2 = glm::translate(identity, v2);

// note that the operator[] returns an entire column as vec4
distance = glm::length(m2[3] - m1[3]);

std::cout << distance << std::endl; // expected output is 4

关于c++ - 两个 glm::mat4 矩阵的 XYZ 距离点到点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55983288/

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