Построение многоугольников
Для построения прямоугольных фигур имеется несколько процедур. Первая из них – вычерчивание одномерного прямоугольника: Rectangle(x1,y1,x2,y2:integer), где x1, y1– координаты левого верхнего угла, x2, y2- координаты правого нижнего угла прямоугольника.
Построение
прямоугольников
Область внутри прямоугольника не закрашена и
совпадает по цвету с фоном. Более эффектные для восприятия
прямоугольники можно строить с помощью процедуры
Bar(x1, y1, x2,
y2:integer), которая рисует закрашенный
прямоугольник. Цвет закраски устанавливается с помощью
SetFillStyle. Ещё одна эффектная процедура:
Bar3D(x1,y1, x2,y2,
d:integer,a:boolean) вычерчивает трехмерный закрашенный
прямоугольник (параллелепипед). При этом используются тип и цвет
закраски, установленные с помощью SetFillStyle. Параметр d
представляет собой число пикселей, задающих глубину трехмерного
контура. Чаще всего его значение равно четверти ширины
прямоугольника (d:=(x2 - x1) div4).
Параметр a определяет, строить над прямоугольником вершину (а:=True)
или нет (a:=False). Примеры использования: 1.
SetColor(Green); Rectangle (200, 100, 250,
300); 2. SetFillStyle(1,3); Bar(10, 10,
50, 100); 3. SetFillStyle(1,3);
Bar3D(10,10,50,100,10,True);
Построение
многоугольников
Многоугольники можно рисовать самыми
различными способами, например с помощью процедуры Line.
Однако в Турбо Паскале имеется процедура DrawPoly, которая
позволяет строить любые многоугольники линией текущего цвета, стиля
и толщины. Она имеет формат DrawPoly( a: word, var
PolyPoints) Параметр PolyPoints является
нетипизированным параметром, который содержит координаты каждого
пересечения в многоугольнике. Параметр а задает число координат в
PolyPoints. Необходимо помнить, что для вычерчивания
замкнутой фигуры с N вершинами нужно передать при обращении к
процедуре DrawPoly N+1 координату, где координата вершины с
номером N будет равна координате вершины с номером
1.
Проиллюстрируем на примере:
program tr;
{Программа вычерчивает в центре экрана треугольник красной
линией} uses crt, graph; var gd, gm: integer;
pp:array[1..4] of PointType;
xm,ym, xmaxD4, ymaxD4:word; begin gd:=detect;
Initgraph(gd,gm,‘c:/bp’); xm:=GetmaxX;
ym:=GetmaxY; xmaxD4:=xm div 4; ymaxD4:=ym div 4;
{определение координат вершин} pp[1].x:= xmaxD4;
pp[1].y:= ymaxD4; pp[2].x:= xm - xmaxD4;
pp[2].y:= ymaxD4; pp[3].x:= xm div 2; pp[3].y:=
ym - ymaxD4; pp[4]:=pp[1]; SetColor(4); {цвет
для вычерчивания} DrawPoly(4,pp); {4 – количество
пересечений +1} readln;
CloseGraph end.
В результате работы программы на
экране появится красный треугольник на черном фоне. Изменить фон
внутри треугольника можно с помощью процедуры FillPoly(a:word,var
PolyPoints). Значения параметров те же, что и в процедуре
DrawPоly. Действие тоже аналогично, но фон внутри
многоугольника закрашивается. В качестве примера нарисуем в левой
верхней части экрана четырехугольную звезду зеленого
цвета:
program g; uses crt, graph;
const Star:array[1..18] of integer = (75, 0, 100, 50, 150, 75, 100,
100, 75, 150, 50, 100, 0, 75, 50, 50, 75, 0); var gd, gm:
integer; begin gd:=detect; initgraph(gd,
gm,‘c:/bp’); SetFillStyle(1,2);
FillPoly(9,Star); {9 – количество пересечений + 1}
CloseGraph; end.
Вышел MySQL 5.1.30, первый стабильный рели....
После публикации 29 тестовых версий
анонсирован первый стабильный релиз
MySQL 5.1, пригодный для
промышленной эксплуатации и обеспечивающий увеличение производительности для
"тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные
новшества
появившиеся в MySQL 5.1:
Тестирование параллельных программ.
Тестирование параллельного программного обеспечения представляет собой более
сложную задачу по сравнению с тестированием последовательной программы. Программист
должен знать о подводных камнях при тестировании параллельного кода, имеющихся
методологиях и инструментарии.
Архитектура AMD64 (EM64T).
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее
реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности,
достоинства и недостатки.
Остальные статьи:
|