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

时间:2017-06-12 15:58:17

标签: 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);
}

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

这是对的吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

是的,这是正确的。

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

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