求三角形的各個角的度數,主要是求角的數學公式:
cosB,cosC 同理。
對應的代碼如下:
/*
na表示角A,nb表示角B,nc表示C
*/
function getAngle(na:Point,nb:Point,nc:Point):void{
var a:Number=Math.sqrt(Math.pow((nc.x-nb.x),2)+Math.pow((nc.y-nb.y),2));
var b:Number=Math.sqrt(Math.pow((nc.x-na.x),2)+Math.pow((nc.y-na.y),2));
var c:Number=Math.sqrt(Math.pow((na.x-nb.x),2)+Math.pow((na.y-nb.y),2));
var cosA:Number=(Math.pow(c,2)+Math.pow(b,2)-Math.pow(a,2))/(2*b*c);
var cosB:Number=(Math.pow(a,2)+Math.pow(c,2)-Math.pow(b,2))/(2*a*c);
var cosC:Number=(Math.pow(a,2)+Math.pow(b,2)-Math.pow(c,2))/(2*b*a);
trace(Math.acos(cosC)*(180/Math.PI));//acos是反餘弦值
trace(Math.acos(cosB)*(180/Math.PI));
trace(Math.acos(cosA)*(180/Math.PI));
trace((Math.acos(cosA)*(180/Math.PI)).toFixed(2));//toFixed 返回值是String
var ja:Number=Number((Math.acos(cosA)*(180/Math.PI)).toFixed(2)) ;
var jb:Number=Number((Math.acos(cosB)*(180/Math.PI)).toFixed(2)) ;
var jc:Number=Number((Math.acos(cosC)*(180/Math.PI)).toFixed(2)) ;
txta.text=ja.toString()+"°";
txtb.text=jb.toString()+"°";
txtc.text=jb.toString()+"°";
}
有參考的鏈接:http://www.hangge.com/blog/cache/detail_1087.html 涉及到atan,推測的acos的用法求角度,結果正確。
界面如下圖
有問題沒有問題都歡迎來討論~