3
下面的代碼使用簡單的緩動功能將線條朝鼠標位置旋轉,但問題在於atan2()方法的工作形式-PI到PI,使得線條向後旋轉達到任何一個限制,我可以使它從0旋轉到TWO_PI,但沒有什麼不同,因爲線會向後旋轉直到它到達targetAngle,如果我不使用寬鬆計算可以正常工作,因爲從-PI跳轉到了PI是不明顯的,那麼我怎樣才能緩解我的旋轉並避免這個問題呢?輕鬆旋轉朝向鼠標
float angle = 0;
float targetAngle = 0;
float easing = 0.1;
void setup() {
size(320, 240);
}
void draw() {
background(200);
noFill();
stroke(0);
// get the angle from the center to the mouse position
angle = atan2(mouseY - height/2, mouseX - width/2);
// check and adjust angle to go from 0 to TWO_PI
if (angle < 0) angle = TWO_PI + angle;
// ease rotation
targetAngle += (angle - targetAngle) * easing;
pushMatrix();
translate(width/2, height/2);
rotate(targetAngle);
line(0, 0, 60, 0);
popMatrix();
}
感謝