Dany jest obiekt A (rys.1).

Zadanie polega na obróceniu go wokół osi przechodzącej przez punkt O. Dane są współrzędne każdego piksela należącego do obiektu(x,y). Przedstawione rozwiązanie zakłada obliczanie współrzędnych dla punktów leżących na osi OX (odległość od punktu O jest równa x). Jak wynika z rysunku drugiego:

Te wzory nie pozwalają jednak na obliczenie współrzędnych punktów, które dla alfa=0, nie leżą na osi OX. Żeby obliczyć je należy przesunąć układ współrzędnych prostopadle do prostej tworzącej z osią OX kąt alfa o wartość y. Ostatecznie równania powinny wyglądać tak:

W programie wystarczy już tylko zrobić pętlę obliczającą x1,y1 dla wszystkich x,y i wstawiającą odpowiedni piksel w punkcie x1,y1:

Żeby obiekt obracał się wokół osi innej niż punkt (0,0) należy do x1,y1 dodać współrzędne osi.

Poniższa metoda napisana w Delphi, wykonywana po kliknięciu na przycisku „Button1”, spowoduje wyświetlenie na formie obrazka wczytanego do komponentu „Image2” obróconego o kąt podany w „edit”

Niestety okazuje się, że po obrocie o np.: pi/3 obraz będzie zawierał puste pixele. Wynika to z przyjętych zaokrągleń- zdarza się, że współrzędne 2 pikseli wypadają w tym samym miejscu, a w konsekwencji w innym miejscu tego piksela będzie brakować. Aby rozwiązać ten problem należałoby zamiast pojedyńczego piksela uzupełniać także sąsiedni:

Dzięki temu, jeżeli sąsiedni piksel z jakiegoś poziomu zostanie pominięty, obrazek nie będzie miał pustych miejsc. Wadą tego rozwiązania jest jednak znacznie spowolnienie algorytmu. Można to nieco poprawić wyliczając kolor, który ma być wstawiony, tylko raz:

Autor: Piotr Szczepaniec