); {малюємо об'єкт кольором фону екрана} p>
moveto (0 + x, 50); lineto (60 + x, 50); (30 + x, 0); lineto (0 + x, 50);
end;
3.2 Поворот об'єкта
Точки можна повернути на заданий кут а відносно початку координат. Якщо точка на площині задана координатами (x, у), то в результаті повороту на кут а її координати (X, У) визначатимуться за формулами:
= х * cos а - у * sin а,
У = х * sin а + у * cos а.
Позитивне значення кута а відповідає повороту проти годинникової стрілки, негативне - за годинниковою стрілкою відповідно з малюнком 10.
В
Рисунок 10 - Поворот об'єкта на кут а.
При організації повороту необхідно враховувати, що початок системи координат в графічному режимі знаходиться в лівому верхньому кутку екрану, вісь OY спрямована вниз, вісь ОХ - вправо. Тоді якщо помістити початок декартової системи координат O1ху в точку O1 (a, b) і направити вісь О1у вгору, то зв'язок між координатами х і у і координатами X, В однієї і тієї ж точки М буде виражатися формулами:
= а + х,
У = b - y
відповідно з малюнком 11.
В
Малюнок 11 - Початок системи координат в графічному режимі.
Таким чином, при організації повороту щодо нового центру необхідно враховувати наведені вище формули:
= а + х * cos а - у * sin а,
У = b - x * sin a - у * cos а.
.2.1 Алгоритм повороту об'єкта
Намалювати об'єкт;
зафіксувати положення об'єкту на екрані;
намалювати об'єкт кольором фону екрану;
змінити координати, використовуючи формули повороту, і намалювати об'єкт вибраним кольором малювання.
Приклад.
Поворот об'єкта - рівностороннього трикутника зі стороною 60 пікселів на заданий кут а - 90 'відносно центру екрана (режим 640x480) відповідно з малюнком 12.
В
Рисунок 12 - Поворот рівностороннього трикутника.
setcolor (6); {малюємо об'єкт}
moveto (320, 240); lineto (60 +320, 240); (30 +320, 240-50); lineto (320, 240); (5000); {фіксуємо положення об'єкту на екрані} (0); {малюємо об'єкт кольором фону екрана}; (320, 240); lineto (60 +320, 240); (30 +320, 240-50); lineto (320, 240);
{малюємо об'єкт вибраним кольором малювання, змінивши координати}
setcolor (6);: = 0 * cos (pi/2) -0 * sin (pi/2); y1: = 0 * sin (pi/2) +0 * cos (pi /2); (320 + round (x1), 240-round (y1));: = 60 * cos (pi/2) -0 * sin (pi/2); y1: = 60...