obrót w radianach z wektorów

0

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.

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...

1 użytkowników online, w tym zalogowanych: 0, gości: 1