技巧是你的问题转换成你知道如何解决这个问题。您可以通过从您的角度减去90度并取消y,即x = r cos(θ-90)和y = -r sin(θ-90)来做到这一点。在JavaScript:
function circleXY(r, theta) {
// Convert angle to radians
theta = (theta-90) * Math.PI/180;
return {x: r*Math.cos(theta),
y: -r*Math.sin(theta)}
}
for (var theta=0; theta<=360; theta += 30) {
var answer = circleXY(60, theta);
console.log('(x, y) = ' + '(' + answer.x + ', ' + answer.y + ') for theta=' + theta);
}
产生以下结果:
(X,Y)=(3.67394039744206e-15,60),用于THETA = 0
(X, (x,y)=(51.96152422706632,29.999999999999996)for theta = 30
(x,y)=(51.96152422706632,29.999999999999996)for theta = 60
(X,Y)=(60,0)为THETA = 90
(X,Y)=(51.96152422706632,-29.999999999999996)为THETA = 120
(X,Y)=( 30.000000000000007,-51.96152422706631)为THETA = 150
(X,Y)=(3.67394039744206e-15,-60),用于THETA = 180
(X,Y)=(-29.999999999999986,-51.96152422706632),用于theta = 210
(x,y) =(-51.96152422706632,-29.999999999999996)为THETA = 240
(X,Y)=( - 60,-7.34788079488412e-15)为THETA = 270
(X,Y)=(-51.96152422706631, 30.000000000000007)for theta = 300
(x,y)=( - 30.00000000000003,51。(x,y)=(-1.1021821192326178e-14,60)for theta = 360
来源
2017-04-26 19:00:30
cjg