ТОП 10:

Абсолютное и относительное смещение



В команде сместиться в точку в качестве аргументов указываются координаты той точки, в которую попадет перо после выполнения команды. На рисунке 38, а показаны результаты выполнения команды сместиться в точку (2, 3) при различных положениях пера до этой команды. Видно, что независимо от предыдущего положения перо оказывается в точке (2,3), но длина и направление отрезка, который при этом чертится (конечно, если перо опущено), могут быть различны. Команду сместиться в точку называют командой абсолютного смещения, так как в ней указываются абсолютные координаты пера.

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

На рисунке 38, б показаны результаты выполнения команды сместиться на вектор (2, 3) при различных положениях пера до этой команды. Из рисунка видно, что положение пера после этой команды зависит от его предыдущего положения, но зато в результате получается отрезок, длина и направление которого постоянны. В математике такой отрезок называется вектором, отсюда и происходит название команды.

 

Рис. 38

 

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

Команды относительного смещения позволяют создавать рисунок в любом месте. Они применяются для создания рисунков, у которых точное место не играет роли или которые нужно воспроизводить в разных местах.

13.5. Пример алгоритма управления Чертежником

Попробуем с помощью Чертежника изобразить прямоугольник с двумя диагоналями (рис. 39, а). Как это сделать? Можно начать с левого нижнего угла и, двигаясь против часовой стрелки, нарисовать все четыре стороны прямоугольника, не отрывая пера от бумаги, после чего провести диагонали (рис. 39, б).

Какие же команды и в какой последовательности нужно для этого дать Чертежнику? Пусть в начальный момент перо поднято. В левый нижний угол можно попасть по команде

сместиться в точку (1,1)

Теперь надо нарисовать прямоугольник. Для этого, прежде всего, следует вызвать команду

опустить перо

После этого перо будет расположено в точке (1,1) и опущено. Для рисования прямоугольника воспользуемся командой сместиться в точку:

сместиться в точку (3, 1)

сместиться в точку (3, 2)

сместиться в точку (1,2)

сместиться в точку (1,1)

 

Рис. 39

 

После этого прямоугольник будет нарисован, а опущенное перо окажется снова в левом нижнем углу — в точке (1,1). Осталось нарисовать диагонали. Это можно сделать так:

сместиться в точку (3, 2)

сместиться в точку (1,2)

сместиться в точку (3, 1)

При этом, однако, верхняя сторона прямоугольника будет нарисована второй раз. Если мы хотим этого избежать, то перед командой

сместиться в точку (1,2)

нужно поднять перо, а потом его опустить:

сместиться в точку (3, 2)

поднять перо

сместиться в точку (1,2)

опустить перо

сместиться в точку (3, 1)

В этот момент вся картинка изображена и осталось поднять перо, чтобы лист бумаги можно было вынуть:

поднять перо

Запишем полученный алгоритм на алгоритмическом языке:

 
 
А31


алгпрямоугольник с диагоналями

дано| перо поднято

надо| нарисован прямоугольник с диагоналями (рис. 39, а),

| перо поднято

Нач

сместиться в точку (1,1)

опустить перо

сместиться в точку (3, 1)

сместиться в точку (3, 2)

сместиться в точку (1,2)

сместиться в точку (1,1)

утв| нарисован прямоугольник

сместиться в точку (3, 2)

поднять перо

сместиться в точку (1, 2)

опустить перо

сместиться в точку (3, 1)

поднять перо

Кон

Рисование букв

С помощью Чертежника можно рисовать любые фигуры, построенные из отрезков, например буквы. Составим алгоритм, при выполнении которого Чертежник рисует на клетчатой бумаге букву М (рис. 40; размеры каждой клетки 1x1). Поскольку начальное положение пера на плоскости не задано, то придется воспользоваться командой сместиться на вектор:

 
 
А32


алгбуква М

дано| перо в точке А (рис. 40) и поднято

надо| нарисована буква М (рис. 40), перо в точке Б и поднято

Нач

опустить перо

сместиться на вектор (0, 4)

сместиться на вектор (1, -2)

сместиться на вектор (1,2)

сместиться на вектор (0, -4)

поднять перо

сместиться на вектор (1,0)

кон

 

Рис. 40 Рис. 41

 

Аналогично можно составить алгоритмы "буква И", "буква Р" и "буква У" (рис. 40).







Последнее изменение этой страницы: 2016-08-12; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.205.93.2 (0.006 с.)