2018-08-02 22:04:49 +03:00
< html > < head >
< object type = "application/x-oleobject" classid = "clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e" >
< param name = "Keyword" value = "Picture" >
< param name = "Keyword" value = "Load" >
< param name = "Keyword" value = "Save" >
< param name = "Keyword" value = "SetSize" >
< param name = "Keyword" value = "Width" >
< param name = "Keyword" value = "Height" >
< param name = "Keyword" value = "Transparent" >
< param name = "Keyword" value = "TransparentColor" >
< param name = "Keyword" value = "Intersect" >
< param name = "Keyword" value = "Draw" >
< param name = "Keyword" value = "CopyRect" >
< param name = "Keyword" value = "FlipHorizontal" >
< param name = "Keyword" value = "FlipVertical" >
< param name = "Keyword" value = "Clear" >
< / object > < / head >
< meta http-equiv = "Content-Type" content = "text/html; charset=windows-1251" >
< title > < / title > < link rel = "StyleSheet" href = "../../default.css" > < body >
2025-11-07 16:12:31 +03:00
< H1 > Класс Picture графического рисунка< / H1 >
< p > Класс < code > Picture< / code >
представляет собой графический рисунок модуля GraphABC и
является надстройкой над типом < code > System.Drawing.Bitmap< / code > . Он
имеет свойство прозрачности, которое можно включать/выключать,
а также возможность непосредственного рисования на с е б е всех графических
примитивов. < / p >
2018-08-02 22:04:49 +03:00
< table border = 0 CELLPADDING = 5 >
< tr >
< td height = "12" > < / td >
< / tr >
< tr > < td style = "border-style:solid; border-width:1px; border-color: #808080; background-color: #E7E7F7" >
2025-11-07 16:12:31 +03:00
< font style = "font-size: 11pt" > Конструкторы класса
2018-08-02 22:04:49 +03:00
Picture< / font > < / td > < / tr >
< tr > < td >
< code >
< b > constructor< / b > Create(w,h: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Создает рисунок размера < code > w< / code > на
< code > h< / code > пикселей
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > constructor< / b > Create(fname: string);
< / code > < br >
2025-11-07 16:12:31 +03:00
Создает рисунок из файла с именем
2018-08-02 22:04:49 +03:00
< code > fname< / code >
< / td > < / tr >
< tr >
< td >
< code >
< b > constructor< / b > Create(r: System.Drawing.Rectangle);
< / code > < br >
2025-11-07 16:12:31 +03:00
Создает рисунок из прямоугольника
< code > r< / code > графического окна
2018-08-02 22:04:49 +03:00
< / td >
< / tr >
< tr > < td height = "8" > < / td > < / tr >
< tr >
< td style = "border:1px solid #808080; background-color: #E7E7F7" >
2025-11-07 16:12:31 +03:00
< font style = "font-size: 11pt" > Свойства класса
2018-08-02 22:04:49 +03:00
Picture< / font > < / td >
< / tr >
< tr > < td >
< code >
< b > property< / b > Width: integer;< / code > < br >
2025-11-07 16:12:31 +03:00
Ширина рисунка в пикселах
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > property< / b > Height: integer;< / code > < br >
2025-11-07 16:12:31 +03:00
Высота рисунка в пикселах
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > property< / b > Transparent: boolean;
< / code > < br >
2025-11-07 16:12:31 +03:00
Прозрачность рисунка; прозрачный цвет задается свойством
2018-08-02 22:04:49 +03:00
< code > TransparentColor< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > property< / b > TransparentColor: Color;
< / code > < br >
2025-11-07 16:12:31 +03:00
Прозрачный цвет рисунка. Должна быть установлена прозрачность
2018-08-02 22:04:49 +03:00
< code > Transparent< / code > = < code > True< / code >
< / td > < / tr >
< tr >
< td height = "8" > < / td >
< / tr >
< tr >
< td style = "border:1px solid #808080; background-color: #E7E7F7" >
2025-11-07 16:12:31 +03:00
< font style = "font-size: 11pt" > Методы класса
2018-08-02 22:04:49 +03:00
Picture< / font > < / td >
< / tr >
< tr >
< td >
< code >
< b > procedure< / b > Load(fname: string);
< / code > < br >
2025-11-07 16:12:31 +03:00
Загружает рисунок из файла с именем
2018-08-02 22:04:49 +03:00
< code > fname< / code >
< / td >
< / tr >
< tr >
< td >
< code >
< b > procedure< / b > Save(fname: string);
< / code > < br >
2025-11-07 16:12:31 +03:00
Сохраняет рисунок в файл с именем
2018-08-02 22:04:49 +03:00
< code > fname< / code >
< / td >
< / tr >
< tr >
< td >
< code >
< b > procedure< / b > SetSize(w,h: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Устанавливает размер рисунка
< code > w< / code > на < code > h< / code > пикселей
2018-08-02 22:04:49 +03:00
< / td >
< / tr >
< tr > < td >
< code >
< b > function< / b > Intersect(p: Picture): boolean;
< / code > < br >
2025-11-07 16:12:31 +03:00
Возвращает < code > True< / code > , если изображение данного рисунка
пересекается с изображением рисунка < code > p< / code > , и < code > False< / code > в
противном случае. Для проверки пересечения о б а объекта рисуются
на белом фоне, и прямоугольник пересечения попиксельно проверяется на
пересечение. К сожалению, при таком алгоритме любые белые пиксели считаются не
принадлежащими объекту. Поэтому для корректной работы этого метода не
следует использовать белый цвет для внутренности объекта.
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Draw(x,y: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит рисунок в позиции (x,y)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Draw(x,y: integer; g: Graphics);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит рисунок в позиции (x,y) на поверхность рисования
2018-08-02 22:04:49 +03:00
< code > g< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Draw(x,y,w,h: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит рисунок в позиции (x,y), масштабируя е г о к размеру (w,h)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Draw(x,y,w,h: integer; g: Graphics);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит рисунок в позиции (x,y), масштабируя е г о к размеру (w,h), на поверхность рисования
2018-08-02 22:04:49 +03:00
< code > g< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Draw(x,y: integer; r: System.Drawing.Rectangle); // r - part < b > of< / b > Picture
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит часть рисунка, заключенную в прямоугольнике
< code > r< / code > , в позиции (x,y)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Draw(x,y: integer; r: System.Drawing.Rectangle; g: Graphics);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит часть рисунка, заключенную в прямоугольнике
< code > r< / code > , в позиции (x,y) на поверхность рисования g
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Draw(x,y,w,h: integer; r: System.Drawing.Rectangle); // r - part < b > of< / b > Picture
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит часть рисунка, заключенную в прямоугольнике
< code > r< / code > , в позиции (x,y), масштабируя е г о к размеру (w,h)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Draw(x,y,w,h: integer; r: System.Drawing.Rectangle; g: Graphics);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит часть рисунка, заключенную в прямоугольнике
< code > r< / code > , в позиции (x,y), масштабируя е г о к размеру (w,h), на поверхность рисования g
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > CopyRect(dst: System.Drawing.Rectangle; p: Picture; src: System.Drawing.Rectangle);
< / code > < br >
2025-11-07 16:12:31 +03:00
Копирует прямоугольник < code > src< / code > рисунка
< code > p< / code > в прямоугольник < code > dst< / code > текущего рисунка
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > CopyRect(dst: System.Drawing.Rectangle; bmp: Bitmap; src: System.Drawing.Rectangle);
< / code > < br >
2025-11-07 16:12:31 +03:00
Копирует прямоугольник < code > src< / code > битового образа
< code > bmp< / code > в прямоугольник < code > dst< / code > текущего рисунка
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > FlipHorizontal;
< / code > < br >
2025-11-07 16:12:31 +03:00
Зеркально отображает рисунок относительно горизонтальной оси симметрии
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > FlipVertical;
< / code > < br >
2025-11-07 16:12:31 +03:00
Зеркально отображает рисунок относительно вертикальной оси симметрии
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > SetPixel(x,y: integer; c: Color);
< / code > < br >
2025-11-07 16:12:31 +03:00
Закрашивает пиксел (x,y) рисунка цветом
2018-08-02 22:04:49 +03:00
< code > c< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > PutPixel(x,y: integer; c: Color);
< / code > < br >
2025-11-07 16:12:31 +03:00
Закрашивает пиксел (x,y) рисунка цветом
2018-08-02 22:04:49 +03:00
< code > c< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > function< / b > GetPixel(x,y: integer): Color;
< / code > < br >
2025-11-07 16:12:31 +03:00
Возвращает цвет пиксела (x,y) рисунка
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Line(x1,y1,x2,y2: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке отрезок от точки (x1,y1) до точки (x2,y2)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Line(x1,y1,x2,y2: integer; c: Color);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке отрезок от точки (x1,y1) до точки (x2,y2) цветом
2018-08-02 22:04:49 +03:00
< code > c< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > FillCircle(x,y,r: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Заполняет на рисунке внутренность окружности с центром (x,y) и радиусом
2018-08-02 22:04:49 +03:00
< code > r< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > DrawCircle(x,y,r: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке окружность с центром (x,y) и радиусом
2018-08-02 22:04:49 +03:00
< code > r< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > FillEllipse(x1,y1,x2,y2: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Заполняет на рисунке внутренность эллипса, ограниченного прямоугольником, заданным координатами противоположных вершин (x1,y1) и (x2,y2)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > DrawEllipse(x1,y1,x2,y2: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке границу эллипса, ограниченного прямоугольником, заданным координатами противоположных вершин (x1,y1) и (x2,y2)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > FillRectangle(x1,y1,x2,y2: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Заполняет на рисунке внутренность прямоугольника, заданного координатами противоположных вершин (x1,y1) и (x2,y2)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > FillRect(x1,y1,x2,y2: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Заполняет на рисунке внутренность прямоугольника, заданного координатами противоположных вершин (x1,y1) и (x2,y2)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > DrawRectangle(x1,y1,x2,y2: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке границу ы прямоугольника, заданного координатами противоположных вершин (x1,y1) и (x2,y2)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Circle(x,y,r: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке заполненную окружность с центром (x,y) и радиусом
2018-08-02 22:04:49 +03:00
< code > r< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Ellipse(x1,y1,x2,y2: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке заполненный эллипс, ограниченный прямоугольником, заданным координатами противоположных вершин (x1,y1) и (x2,y2)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Rectangle(x1,y1,x2,y2: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке заполненный прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > RoundRect(x1,y1,x2,y2,w,h: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке заполненный прямоугольник с о скругленными краями; (x1,y1) и (x2,y2) задают пару противоположных вершин, а
< code > w< / code > и < code > h< / code > – ширину и высоту эллипса, используемого для скругления краев
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Arc(x,y,r,a1,a2: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке дугу окружности с центром в точке (x,y) и радиусом
< code > r< / code > , заключенной между двумя лучами, образующими углы < code > a1< / code > и
< code > a2< / code > с осью OX (< code > a1< / code > и < code > a2< / code > – вещественные, задаются в градусах и отсчитываются против часовой стрелки)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > FillPie(x,y,r,a1,a2: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Заполняет на рисунке внутренность сектора окружности, ограниченного дугой с центром в точке (x,y) и радиусом
< code > r< / code > , заключенной между двумя лучами, образующими углы < code > a1< / code > и
< code > a2< / code > с осью OX (< code > a1< / code > и < code > a2< / code > – вещественные, задаются в градусах и отсчитываются против часовой стрелки)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > DrawPie(x,y,r,a1,a2: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке сектор окружности, ограниченный дугой с центром в точке (x,y) и радиусом
< code > r< / code > , заключенной между двумя лучами, образующими углы < code > a1< / code > и
< code > a2< / code > с осью OX (< code > a1< / code > и < code > a2< / code > – вещественные, задаются в градусах и отсчитываются против часовой стрелки)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Pie(x,y,r,a1,a2: integer);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке заполненный сектор окружности, ограниченный дугой с центром в точке (x,y) и радиусом
< code > r< / code > , заключенной между двумя лучами, образующими углы < code > a1< / code > и
< code > a2< / code > с осью OX (< code > a1< / code > и < code > a2< / code > – вещественные, задаются в градусах и отсчитываются против часовой стрелки)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > DrawPolygon(points: < b > array< / b > < b > of< / b > Point);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке замкнутую ломаную по точкам, координаты которых заданы в массиве
2018-08-02 22:04:49 +03:00
< code > points< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > FillPolygon(points: < b > array< / b > < b > of< / b > Point);
< / code > < br >
2025-11-07 16:12:31 +03:00
Заполняет на рисунке многоугольник, координаты вершин которого заданы в массиве
2018-08-02 22:04:49 +03:00
< code > points< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Polygon(points: < b > array< / b > < b > of< / b > Point);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке заполненный многоугольник, координаты вершин которого заданы в массиве
2018-08-02 22:04:49 +03:00
< code > points< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Polyline(points: < b > array< / b > < b > of< / b > Point);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке ломаную по точкам, координаты которых заданы в массиве
2018-08-02 22:04:49 +03:00
< code > points< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Curve(points: < b > array< / b > < b > of< / b > Point);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке кривую по точкам, координаты которых заданы в массиве
2018-08-02 22:04:49 +03:00
< code > points< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > DrawClosedCurve(points: < b > array< / b > < b > of< / b > Point);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке замкнутую кривую по точкам, координаты которых заданы в массиве
2018-08-02 22:04:49 +03:00
< code > points< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > FillClosedCurve(points: < b > array< / b > < b > of< / b > Point);
< / code > < br >
2025-11-07 16:12:31 +03:00
Заполняет на рисунке замкнутую кривую по точкам, координаты которых заданы в массиве
2018-08-02 22:04:49 +03:00
< code > points< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > ClosedCurve(points: < b > array< / b > < b > of< / b > Point);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке заполненную замкнутую кривую по точкам, координаты которых заданы в массиве
2018-08-02 22:04:49 +03:00
< code > points< / code >
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > TextOut(x,y: integer; s: string);
< / code > < br >
2025-11-07 16:12:31 +03:00
Выводит на рисунке строку < code > s< / code > в прямоугольник к координатами левого верхнего угла (x,y)
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > FloodFill(x,y: integer; c: Color);
< / code > < br >
2025-11-07 16:12:31 +03:00
Заливает на рисунке область одного цвета цветом
< code > c< / code > , начиная с точки (x,y).
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Clear;
< / code > < br >
2025-11-07 16:12:31 +03:00
Очищает рисунок белым цветом
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< tr > < td >
< code >
< b > procedure< / b > Clear(c: Color);
< / code > < br >
2025-11-07 16:12:31 +03:00
Очищает рисунок цветом < code > c< / code >
2018-08-02 22:04:49 +03:00
< / td > < / tr >
< / table >
< / body > < / html >