Autor Wątek: Transformacja o kąt  (Przeczytany 757 razy)

Offline lastseeds

  • Użytkownik

# Styczeń 25, 2009, 01:17:29
Witam potrzebuje wzoru na przeksztalcenie punktu wzgledem punktu(na prostej plaszczyznie 2d) , aktualnie korzystam z wzoru

  int x1 = (x - xu) * cos(kat) + xu - (y - yu) * sin(kat) + xu;
  int y1 = (x - xu) * sin(kat) + xu - (y - yu) * cos(kat) + yu; 

x,y - punkt do odwrócenia
xu,yu - punkt wokół którego obracamy
k - kąt
x1,x2 - punkty odwrócone

ale nie chodzi mi o taki efekt
http://img124.imageshack.us/my.php?image=kwadratkf5.jpg
tutaj wyjasniam o co mi chodzi :P

//zmienilem maly blad na koncu pierwszego wzoru

Chodzi mi o to by nie byl to obrot wglab ekranu, tylko po prostu na plaszczyznie
« Ostatnia zmiana: Styczeń 25, 2009, 01:50:40 wysłana przez lastseeds »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Styczeń 25, 2009, 01:31:57
Cytuj
int x1 = (x - xu) * cos(kat) + xu - (y - yu) * sin(kat) + yu;
int y1 = (x - xu) * sin(kat) + xu - (y - yu) * cos(kat) + yu;
Sugeruję użycie poniższej wersji:

  int x1 = (x - xu) * cos(kat) - (y - yu) * sin(kat) + xu;
  int y1 = (x - xu) * sin(kat) + (y - yu) * cos(kat) + yu;


EDIT: Mała poprawka.

Offline lastseeds

  • Użytkownik

# Styczeń 25, 2009, 01:52:53
Wszystko dziala dzieki :)