Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Графика Паскаль.doc
Скачиваний:
6
Добавлен:
23.08.2019
Размер:
1.48 Mб
Скачать

1.Рисование забора

Забор возле домика будет состоять из досочек-штакетинок:

У вас есть предложение?

Конечно, раз забор состоит из множества одинаковых фигурок, стоит создать процедуру и вызывать её для построения каждой досочки. Попробуем?

• Откройте файл pr5.pas.

• Добавьте объявление процедуры Doska и её вызов в программе:

• Запустите программу — получилась досочка?

Теперь достаточно добавить второй вызов процедуры Doska, потом третий, четвёртый, пятый...— Погодите! — вырывается у вас — но ведь и вторая, и третья, и пятидесятая доски будут рисоваться на том же самом месте!

И действительно, мы создали процедуру, рисующую фигуру в абсолютных координатах. Такая процедура пригодна для рисования единственного экземпляра. Если же нам необходимо рисовать несколько одинаковых (или почти одинаковых) фигур, то рисование в процедуре должно производиться по относительным координатам.

— Как это? — спросите вы. А давайте попробуем.

2.Относительные координаты

Абсолютными называют координаты, которые отсчитывают от верхнего левого угла экрана (именно там расположено начало координат).

Относительными называют координаты, которые отсчитываются от текущей точки.

• Исправьте процедуру Doska и её вызов:

То, что мы сделали, требует более подробного пояснения.

  • Итак, в процедуру Doska переданы параметры х=290 и у=250.

  • Команда MoveTo(x.y) перемещает графический указатель в точку с координатами (290,250).

  • Команда LineRel(10,-10) рисует отрезок от точки (290,250) до точки (300,240). Как получились эти координаты?

■ компилятор получил их сложением: 290+10=300, 250+(-10)=240— ему хорошо, он считает быстро;

■ человек считает медленнее, но лучше ориентируется в пространстве— относительные координаты (10,-10) получаются смещением точки на 10 пикселей вправо и на 10 пикселей вверх (вы ещё не забыли, что ось Y направлена вниз?)

  • При рисовании отрезка произошло также перемещение графического указателя — теперь он расположен в точке (300,240).

  • Команда LineRel(10,10) рисует отрезок, направленный вправо (на 10 пикселей) и вниз (на 10 пикселей).

Приведённая схема поможет вам в освоении относительных координат:

• Запустите программу — не ошиблись?

3.Строительство забора

Для того, чтобы «прибить» следующую дощечку, необходимо вызвать процедуру Doska с новыми параметрами. Как их узнать?

Обратим внимание:

• ширина дощечки составляет 20 пикселей;

• дощечки размножаются по горизонтали;

• изменять надо координату Х.

• если между дощечками предполагается некоторое расстояние, то величину смещения увеличиваем на это расстояние.

4.Круги и эллипсы

Для того, чтобы пустить по небу облака, создадим соответствующую процедуру. • Добавьте процедуру Oblako:

Как всегда, разберёмся:

  • в процедуру Oblako кроме координат будет передаваться параметр с, задающий цвет облака;

  • в этой процедуре реализован ещё один способ рисования в относительных координатах — все координаты отсчитываются от значений х и у;

  • команда Circle выводит окружность (первые два параметра задают координаты центра, третий параметр — величину радиуса);

  • командой Ellipse рисуется эллипс (два первых параметра задают координаты центра эллипса, пятый и шестой параметры— горизонтальный и вертикальный радиусы, про третий и четвёртый узнаем чуть позже).

• Добавьте в программу вызов процедуры: