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)
总结:算法主要用到数学中的三角函数。