-2
uvec1 = (vec3 - vec1).normalize3() 
uvec2 = (vec3 - vec2).normalize3()

   Vec normalize3()
   {
      double length = sqrt(x^2 + y^2 + z^2);
      return new Vec(x/length, y/length, z/length);      
   }

仅给定 uvec2、vec1 和 vec2,是否可以求解 uvec1?

样本数据:

vec1 = (3994349.6104437034, -2525024.5798455356, 4270768.558174166, 1.0)    
vec2 = (3994350.7884981344, -2525023.416923353, 4270767.502702763, 1.0)    
vec3 = (3994403.673228261, -2525050.920923162, 4270738.823082169, 1.0) 
uvec1 = (0.8058476404228322, -0.3926341461126214, -0.44322455677835176, 1.0)
uvec2 = (0.7994702158645208, -0.415784076265458, -0.43355619689910574, 1.0)
4

1 回答 1

0

在数学上,你有以下

u1 = (v3 - v1)/||v3 - v1||
u2 = (v3 - v2)/||v3 - v2||

您想在不知道的情况下求解给u1v1v2, 和。让我们把第一个方程写成u2v3

u1 = ((v3 - v2) + (v2 - v1))/||v3-v1||

将底部方程代入:

u1 = (u2*||v3 - v2|| + (v2 - v1))/||v3 - v1||

最后一个等式似乎表明,即使 、 和 的值相同,具有不同v3也会定义不同。因此,仅凭您给出的值不能唯一确定。u1v1v2u2u1

于 2013-02-19T04:13:12.520 回答