Witam! Już przebrnąłem z grubsza przez funkcje trygonometryczne i rozumiem co i jak. Napisałem sobie wzór na kartce z rysunkiem razem na obrót obiektu wokół punktu po okręgu. Niby obraca, ale też oddala obiekt (kamerę) od obiektu. Mógłby ktoś spojrzeć i powiedzieć co jest nie tak? Jakby ktoś miał 2 minutki to sobie niech to rozrysuje. Dodam, że korzystam z układu XYZ, gdzie Y to pion i dlatego zamiast Y korzystam z osi Z. Wzory daje w 2 postaciach: kod i to co na kartce + rysunek.
Kartka:
a = sin(alfa/2) * R * 2;
beta = (180 - alfa) / 2
x = sin(beta) * a;
y = cos(beta) * a; (w sensie Z)
// i potem do punktu B dodaję x i y
Kod:
public void MoveAround(int direction)
{
float alfa = direction / (Math.Abs(direction)) * moveSpeed;
float a = (float)(Math.Sin(MathHelper.ToRadians(alfa / 2)) * Math.Sqrt(Math.Pow(Math.Abs(position.X - lookAt.X), 2)
+ Math.Pow(Math.Abs(position.Z - lookAt.Z), 2)) * 2);
float beta = (180 - alfa) / 2;
position.X += (float)(Math.Sin(MathHelper.ToRadians(beta) * a)); // tu od razu dodaję x...
position.Z += (float)(Math.Cos(MathHelper.ToRadians(beta) * a)); // ...i y (w sensie Z)
}
Rysunek:
Był bym bardzo wdzięczny za pomoc.