用x y坐标绘制半圆周围的点

时间:2015-05-13 13:43:06

标签: javascript

我试图使用forumla将度数转换为X和Y坐标,这样我就可以通过" top"来围绕圆周围放置点。和"左"偏移。

这些帖子描述了三角函数来帮助解决这个问题:

数十次搜索不断提出这个公式:

X = r * cosine(angle)
Y = r * sine(angle)

但我不能让它在我的代码环境中工作。这段代码:

// angle is amount in degrees that the point should be at
// pieHeight is distance between bottom of semicircle and top of semicircle (i.e. radius)
var angle = ((amount / range) * 180);
offLeft = pieHeight + ((pieHeight) * Math.cos(angle));
offTop = (pieHeight / 3) + ((pieHeight) * Math.sin(angle));
console.log(amount, angle, Math.round(offLeft), Math.round(offTop));

// Update display
$(val).css('left', offLeft);
$(val).css('top', offTop);

产生这个结果:

Incorrect dials

控制台输出为:

0 0 268 45
20 36 117 -88
40 72 4 79
60 108 184 169
80 144 251 -21
100 180 54 -63

数字应该是圆弧形,但它们不是有序的,我不能让它们符合只在半圆内。 有人能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:2)

问题是Math.sin()Math.cos()以弧度为单位。我猜你是乘以180得到一个角度。

尝试更改

var angle = ((amount / range) * 180);

var angle = ((amount / range) * Math.PI);