c++ - 给定 2 个点和从第一个点到我必须找到的点的范围。如何找到我必须找到的点(在3D空间上)

标签 c++ c math vector

我不知道如何找到我所说的第三点。

但是,我尝试编写代码:

float extraX; // x of the third point
float extraY; // y of the third point
float extraZ; // z of the third point

void CalculateExtraPoint(float x1, float y1, float z1, float x2, float y2, float z2){
    float range = extraRange; //range from the first point to third point 
    float d_x = x1-x2; 
    float d_y = y1-y2;
    float d_z = z1-z2;
    distance1_2 = sqrt(pow(d_x,2)+pow(d_y,2)+pow(d_z,2));
    float temp = (range/distance1_2)+1;
    extraX = x2 + (temp*d_x);
    extraY = y2 + (temp*d_y);
    extraZ = z2 + (temp*d_z);
}

它来自 vector 方程,r=(x2,y2,z2) + (lambda)[x1-x2,y1-y2,z1-z2]。 r 是任意点。

正确吗?提前致谢。

最佳答案

是的,这是正确的。

稍微简单、更方便的变体。这里更清楚的是,我们从第一点开始考虑范围:

float temp = range/distance1_2;
extraX = x1 + (temp*d_x);
extraY = y1 + (temp*d_y);
extraZ = z1 + (temp*d_z);

关于c++ - 给定 2 个点和从第一个点到我必须找到的点的范围。如何找到我必须找到的点(在3D空间上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44503809/

相关文章:

c++ - 在 C++ 中同时运行具有不同参数的相同 exe

c++ - 如何使用 uint64_t 键类型从 std::map<int, std::string> 返回值?

c++ - 以下代码如何工作?

c++ - 使用 Qt 删除文件夹及其所有内容?

C 解析/proc/stat 以计算每个核心的当前 CPU 使用率

c - 从结构中添加或删除数据

c++ - 符号 ":"在 C 和 C++ 中意味着什么?

python - 将代码 matlab 转换为 python numpy

php - 使用 mySQL PHP 数据库进行数学计算

c++ - 当一个相对较大的浮点值与两个相对较小的浮点值相乘时,消除误差的最佳算术顺序是什么