|
|||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Работа с линиями
В графическом режиме курсор невидим, его положение можно определить функциями, возвращающими значения координат:
GetX; - по оси "Х", GetY; - по оси "Y".
Следующие процедуры перемещают курсор без рисования:
MoveTo(x, y); - переместить курсор в точку с координатами (x, y), MoveRel(dx,dy); - сместить курсор на расстояние dx, dy от текущего положения.
Для построения многоугольников и ломаных линий удобно использовать процедуры:
LineTo(x, y); - провести отрезок прямой линии от текущего положения
LineRel(dX, dY); - провести отрезок прямой линии от текущего положения курсора до точки, смещенной на расстояние dX, dY по соответствующим осям.
Пример операторов для построения восьмиугольника:
R:=100; { расстояние от вершин до центра xc, yc }
for i:= 1 to 8 do begin alfa:= i * pi/4; { значение угла в рад. } x[i]:= xc + round(R * cos(alfa)); { координаты вершин } y[i]:= yc + round(R * sin(alfa)) end; MoveTo(x[8], y[8]); { исходная позиция для рисования } for i:= 1 to 8 do LineTo(x[i], y[i]); { рисование линий }
Для отрезков прямых линий и процедур с их использованием можно задать режимы построения прямых линий оператором:
SetWriteMode(N);
N=0 - замещение линией изображения на экране (режим CopyPut) используется по умолчанию, N=1 - изображение комбинируется (режим XorPut). Работа функции состоит в изменении согласно логической операции "исключающее ИЛИ" исходного значения цвета пиксела (числа "1" или "0"). Логическая функция Xor, примененная к одной переменной дважды, восстанавливает ее исходное значение: (J xor I) xor I = J. Следовательно при повторном проведении линии в режиме XorPut изображение этой линии уничтожается, а цвет пикселов экрана становится исходным. На этом правиле основаны некоторые программы построения движущихся изображений.
Пример операторов для рисования движущегося прямоугольника: SetWriteMode(1); a:= 100; b:= 50; { стороны прямоугольника } x1:= 0; y1:= GetMaxY div 2; N:= GetMaxX - x1 - a; { N - число перемещений } for i:= 0 to N do begin Rectangle(x1+i, y1, x1+a+i, y1+b); { рисование прямоугольника } delay(10); Rectangle(x1+i,y1,x1+a+i,y1+b); { стирание прямоугольника } end;
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |