Witam uczę się programowania, a już z opengl wgl nie mam styczności. Napotkałem taki kod:
pozycja obroc_pozycje(pozycja a, pozycja c, float kat) {
pozycja poz;
a.x -= c.x; a.y -= c.y;
poz.x = a.x * cos(kat) - a.y * sin(kat);
poz.y = a.x * sin(kat) + a.y * cos(kat);
a.x += c.x; a.y += c.y;
return poz;
Jest to funkcja obracająca punkt względem środka tylko nie rozumiem jej zapisu , na czym to polega, a nie moge nigdzie znaleźć wytłumaczenia oraz druga funkcja dotycząca rysowania pojedynczego trójkąta, tak nie zwracając na nazwy zmiennych po prostu nie rozumiem jak to działa.
void rysuj_trojkat(float r, float g, float b, float skala)
{
glBegin(GL_TRIANGLES);
glColor3f(r, g, b);
pozycja poz, center;
center.x = -PRZYPROSTOKATNA / 3.0;
center.y = PRZYPROSTOKATNA / 3.0;
poz.x = 0.0f; poz.y = 0.0f; poz = obroc_pozycje(poz, center, centerAngle);
glVertex3f((poz.x + center.x) * skala, (poz.y + center.y) * skala, 0.0f);
poz.x = -PRZYPROSTOKATNA; poz.y = 0.0f; poz = obroc_pozycje(poz, center, centerAngle);
glVertex3f((poz.x + center.x) * skala, (poz.y + center.y) * skala, 0.0f);
poz.x = 0.0f; poz.y = PRZYPROSTOKATNA; poz = obroc_pozycje(poz, center, centerAngle);
glVertex3f((poz.x + center.x) * skala, (poz.y + center.y) * skala, 0.0f);
glEnd();
Mógłby ktoś wytłumaczyć albo przekierować do jakiś stron internetowych?
Pozdrawiam