Witam, mam problem gdyż nie wiem jak obliczyc obrot tekstury w radianach tak ze np mam obiekt w punkcie a (x1, y1), drugi obiekt w punkcie b (x2, y2) i chce zeby a byl obrocony w strone b. dzieki za wszelka pomoc.
0
1
Liczysz wektor różnicy:
b - a
A następnie kąt tego wektora (kąt względem wektora 0, -1 na przykład)
Cytat z mojej klasy wektora
public float DotProduct(Vector2 v)
{
float sum = 0;
sum += this.X * v.X;
sum += this.Y * v.Y;
return sum;
}
public static Angle AngleBetween(Vector2 v1, Vector2 v2)
{
double radians = Math.Acos(v1.DotProduct(v2) / (v1.Length * v2.Length));
if (v1.X < v2.X)
radians = (2 * Math.PI - radians); // szczegół implementacji.
// Normalnie funkcja zwracałaby mniejszy kąt, czyli kąt( (0, -1), (1, 0) ) == kąt( (1, 0), (0, -1) ) == 90. Dzięki temu 1 kąt = 90 a drugi - 270.
return Angle.FromRadians(radians);
}
Btw. Google nie gryzie...