我閱讀在線教程約向量和我在尋找載體here故障轉換公式爲AS3
之間的夾角在這裏筆者使用下面的載體和更換式獲得角35.26度。
Vector a is (4, 4, 4)T Vector b is (4, 0, 4)T Calculate: au · bu = cos θ
我將它改成AS3和使用相同的載體比較答案
代碼:
var a:Vector3D = new Vector3D(4, 4, 4);
var b:Vector3D = new Vector3D(4, 0, 4);
//magnitute
var am:Number = Math.sqrt(a.x * a.x + a.y * a.y + a.z * a.z);
var bm:Number = Math.sqrt(b.x * b.x + b.y * b.y + b.z * b.z);
trace(am,bm);
//normalized
var aa:Vector3D = new Vector3D(a.x/am,a.y/am,a.z/am);
var bb:Vector3D = new Vector3D(b.x/bm,b.y/bm,a.z/bm);
//dot product
var costheta:Number = aa.x * bb.x + aa.y * bb.y + aa.z * bb.z;
trace(costheta);
//angle in degrees
trace(Math.acos(costheta) * 180/Math.PI);
輸出:
我都弧度和在給定的正確輩分教程
0.816496580927726
35.264389682754654
現在
,問題是,我用用不同的載體another example,只是更換了變量在我的AS3程序
f = (4, 3, 2)T
g = (-1, 4, 4)T
預期輸出(從網站)
0.51721
58.885
我所期待的正確的輸出,但其與作者在網站上的回答不匹配。
0.3879049103011416
67.17580053566918
同一案件與another example.
p = (-2, 4, 3)T
q = (3, 1, -4)T
預計輸出
-0.50985
120.654°
我的輸出
0.2549249642552304
75.23086102240184
哪裏錯了嗎?我錯過了什麼?
感謝捕捉,它是深夜2:30 AM :) –