Допустим, у меня есть круг с линией, торчащей из него.
Я хочу, чтобы эта линия указывала на центр окна, независимо от того, куда движется круг.
Но, Я хочу, чтобы эта линия на медленно двигалась к этому углу.Я не хочу, чтобы вращение вычислялось и устанавливалось для каждого отдельного кадра, а скорее вычислялось и Твин в этом направлении.
Проблема, с которой я столкнулся, заключается в том, что если вы двигаетесьчтобы заставить линию вращаться вокруг места, где радианы встречаются с 0, она сделает полные 360 (или 3,14 в радах;), чтобы добраться до этой точки.
Я потратил некоторое время, пытаясь придумать, как объяснить это лучше всего, вот кодекс , который, мы надеемся, может помочь прояснить то, что я спрашиваю
// CenterX/Y is the center of the screen.
// dotX/Y is the center of the circle.
var angleToCenter=Math.atan2(centerY-dotY,centerX-dotX);
if (angleToCenter<currentAngle) {
currentAngle-=0.05;
} else {
currentAngle+=0.05;
}
если вы переместитесь вправо от экрана, а затем поднимитесь выше или ниже центра, вы увидите, что линия движется по кругу, пытаясь добраться до рассчитанного направления.Как мне избежать этого?Я хочу, чтобы линия плавно вращалась, чтобы указывать на центр, кратчайшим путем, , а не , делая полный круг.