使用`Math.PI`如何在每个元素中设置我自己的角度值?

时间:2015-08-18 16:41:49

标签: javascript arrays math

如何为元素设置值数组(度)?

每个元素都需要从数组中获取值,并需要相应地进行排列。对我来说,这不起作用。任何人都可以告诉我这样做的正确方法吗?

示例代码:

var items = 4;
var values = [0,15,30,45] //first should be 0, next 15deg like so..
for(var i = 0; i < items; i++) {
    var num = i;
    var x = 75 - 12 + 87 * Math.cos(values[i]);
    var y = 75 - 12 + 87 * Math.sin(values[i]); 

    $("#center").append("<div class='point' style='left:"+ x +"px;top:"+ y +"px'></div>");   
}

在某些时候,如果我需要设置360个元素,那么应根据数组值进行排列。

Live demo

1 个答案:

答案 0 :(得分:2)

传递给Math.sinMath.cos的角度必须是弧度,而不是度数。

要转换为弧度,只需将角度乘以Math.PI / 180

var values = [0,15,30,45];
for(var i = 0; i < values.length; i++) {
  $(document.createElement('div')).css({
    left: 75 - 12 + 87 * Math.cos(values[i] * Math.PI / 180),
    top: 75 - 12 + 87 * Math.sin(values[i] * Math.PI / 180)
  }).addClass('point').appendTo("#center");    
}
.point {
  position: absolute;
  border: 5px solid;
  border-radius: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="center"></div>