inga zajonc
Искусственный Интеллект
(202634)
6 лет назад
Геометрию уже проходили? Паскаль изучали?
Делаем так:
Фигуру задаём как двумерный массив, в каждой строке которого по координате вершины. Вершины (это важно!) записываем в порядке их обхода по или против часовой стрелки.
Фигуру рисуем например с помощью функции Drawpoly
Для перемещения фигуры к координатам точки надо просто прибавить изменение координаты вектора, в направлении которого перемещаем. Например если начало вектора (10,10) а конец (7,3)
то
a[ i,1]:=a[ i,1]+(7-10); a[ i,2]:=a[ i,2]+(3-10);
Для поворота на угол f относительно какой-то точки надо представить, что начало координат в этой точке, а ось абсцисс совпадает с вектором, длина которого равна расстоянию от оси вращения до поворачиваемой точки:
a[ i,1]:=x0+(a[ i,1]-x0)*cos(f); a[ i,2]:=y0+(a[ i,2]-y0)*sin(f);
Как сделать, чтобы фигура поворачивалась плавно и двигалась мышкой, а также как зеркально отразить фигуру относительно некоторой оси - это уже пять с тремя плюсами.
По теме «Движение»
1. Построить фигуру с помощью поворота по часовой стрелке на угол 125° с заданным центром поворота.
2. Построить фигуру с помощью параллельного переноса на вектор.
3. Построить фигуру с помощью параллельного переноса на вектор, совпадающий с одной из сторон фигуры.
4. Построить фигуру с помощью поворота против часовой стрелке на угол 45° и центром поворота в выбранной вами вершине