javascript根据两点和底角,计算等腰三角形的顶点坐标

参考图:



代码如下:

 1 var x1 = 0;
 2 var y1 = 100;
 3 var x2 = -100;
 4 var y2 = 0;
 5 var angle = 30;
 6 
 7 var PI = Math.PI;
 8 // 两点间的x轴夹角弧度
 9 var xAngle=Math.atan2((y2-y1), (x2-x1));
10 // 转为角度
11 xAngle = 360*xAngle/(2*PI);
12 // 两点间的长度
13 var L=Math.sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1));
14 // 计算等腰三角形斜边长度
15 var L2 = L/2 / Math.cos(angle* 2*PI/360);
16 
17 // 求第一个顶点坐标
18 var val1={};
19 // 求第二个顶点坐标
20 var val2={};
21 val1['x']=x1+Math.round(L2 * Math.cos((xAngle+angle)* 2*PI/360));
22 val1['y']=y1+Math.round(L2 * Math.sin((xAngle+angle)* 2*PI/360));
23 val2['x']=x1+Math.round(L2 * Math.cos((xAngle-angle)* 2*PI/360));
24 val2['y']=y1+Math.round(L2 * Math.sin((xAngle-angle)* 2*PI/360));
25 
26 console.log(val1, val2)

总结:算法主要用到数学中的三角函数。

posted @ 2016-05-09 14:16  极·简  Views(1315)  Comments(0Edit  收藏  举报