Obrót
Czasami tworząc program możemy spotkać się z koniecznością narysowania linii pod określonym kątem, lub dokonania obrotu jakiejś figury. Wykonanie tych operacji jest stosunkowo proste. Wystarczy znajomość kilku wzorów.
Praktycznie w każdym języku programowania cała operacji obliczenia aktualnego położenia punkty znajdującego się pod określonym kątem do innego miejsca, sprowadza się do znajomości następującego wzoru:
x, y - współrzędna pozioma i pionowa punktu po dokonaniu obliczeń
xps, yps - współrzędna pozioma i pionowa punktu wokół którego dokonujemy obrotu
xr - promień x, odległość od punktu xps
yr - promień y, odległość od punktu yps
Jeżeli znasz matematykę chociażby na poziomie gimnazjum, pewnie już zauważyłeś, że otrzymane w ten sposób współrzędne są po prosty punktem leżącym na obwodzie koła, a właściwie elipsy ponieważ mamy możliwość zdefiniowania oddzielnego promienia poziomego i pionowego.
W większości języków programowania (o ile nie we wszystkich) miara kąta pełnego jest równa 2 * Pi. Gdybyśmy w miejsce zmiennej kat wpisali: 1 uzyskany w ten sposób kąt nie będzie równy 1 stopniowi. Aby obliczyć jego faktyczną wartość powinniśmy dokonać następującego obliczenia:
Powyższy fragment kodu, został zapisany w języku C++, jednak jego przełożenie na dowolny inny nie powinno sprawić trudności. Niektóre kompilatory ( np. C++ ) podczas, próby skompilowania programu zawierającego powyższe obliczenia mogą zwrócić komunikat o nieznajomych funkcjach sin() lub cos(). Okaże się wtedy konieczne dołączanie dodatkowych bibliotek. W C++ poprzez następujące wyrażenie:
Na koniec mały fragment kodu, który realizuje następujące założenie: oblicza aktualne położenie punktu, który jest położony pod kątem 45 stopni względem punkty o współrzędnych: 100, 50 i oddalony od niego o 20 pixeli:
Praktycznie w każdym języku programowania cała operacji obliczenia aktualnego położenia punkty znajdującego się pod określonym kątem do innego miejsca, sprowadza się do znajomości następującego wzoru:
x = xps + xr * sin(kat);
y = yps + yr * cos(kat);
x, y - współrzędna pozioma i pionowa punktu po dokonaniu obliczeń
xps, yps - współrzędna pozioma i pionowa punktu wokół którego dokonujemy obrotu
xr - promień x, odległość od punktu xps
yr - promień y, odległość od punktu yps
Jeżeli znasz matematykę chociażby na poziomie gimnazjum, pewnie już zauważyłeś, że otrzymane w ten sposób współrzędne są po prosty punktem leżącym na obwodzie koła, a właściwie elipsy ponieważ mamy możliwość zdefiniowania oddzielnego promienia poziomego i pionowego.
W większości języków programowania (o ile nie we wszystkich) miara kąta pełnego jest równa 2 * Pi. Gdybyśmy w miejsce zmiennej kat wpisali: 1 uzyskany w ten sposób kąt nie będzie równy 1 stopniowi. Aby obliczyć jego faktyczną wartość powinniśmy dokonać następującego obliczenia:
stopien = (2 * M_PI) / 360;
Powyższy fragment kodu, został zapisany w języku C++, jednak jego przełożenie na dowolny inny nie powinno sprawić trudności. Niektóre kompilatory ( np. C++ ) podczas, próby skompilowania programu zawierającego powyższe obliczenia mogą zwrócić komunikat o nieznajomych funkcjach sin() lub cos(). Okaże się wtedy konieczne dołączanie dodatkowych bibliotek. W C++ poprzez następujące wyrażenie:
#include "math.h"
Na koniec mały fragment kodu, który realizuje następujące założenie: oblicza aktualne położenie punktu, który jest położony pod kątem 45 stopni względem punkty o współrzędnych: 100, 50 i oddalony od niego o 20 pixeli:
int stopien, x, y;
stopien = (2 * M_PI) / 360;
x = 100 + 20 * sin(45 * stopien);
y = 50 + 20 * cos(45 * stopien);
stopien = (2 * M_PI) / 360;
x = 100 + 20 * sin(45 * stopien);
y = 50 + 20 * cos(45 * stopien);
Materiał dodany przez użytkownika: alphan
