根据 BoXuan给出的JAVA代码,转换成JS 绘出 正 (等边) 5边形,并显示出顶点坐标。祝你编程顺利。
坐表法等分圆周#test{
position:absolute;
left:opx;
top:300px;
}
td{
width:100px;
height:30px;
}
#paint{
position:absolute;
left:0px;
top:0px;
z-index:2;
}
function myFix(num){
if(isNaN(parseFloat(num))){
return false;
} else {
return Math.round(num*100)/100;
}
}
var radianCoefficient = Math.PI/180;
function equalCircle(circleCenterX, circleCenterY, radius, num, deviationAngle){
var f1 = 360 / num;
var f2 = f1 + deviationAngle;
var array = new Array(); //先声明一维
for(var i=0;i
array[i]=new Array(); //在声明二维
var radian = radianCoefficient * f2;// 角度转弧度
array[i][0]= circleCenterX + radius * Math.cos(radian);
array[i][1]= circleCenterY + radius * Math.sin(radian);
f2 += f1;
}
return array;
}
function a(){
var arr = equalCircle(150,150,100, 5,0);
var s="
s += "
圆周等分点坐标"s +="
xy";for (var i=0;i<5;i++){
s += "
" + myFix(arr[i][0]) + "";s += myFix(arr[i][1]) + "
";};
s += "
document.getElementById('test').innerHTML=s;
var g=document.getElementById('paint').getContext('2d');
g.beginPath();
g.moveTo(arr[0][0],arr[0][1]);
for (var i=1;i<5;i++)
g.lineTo(arr[i][0],arr[i][1]);
g.closePath();
g.stroke();
g.beginPath();
g.arc(150,150,100,0,Math.PI*2);
g.stroke();
}
输出: