Root /ArchiveAbout
()

Процедуры RoundRect, DrawRoundRect, FillRoundRect

Процедуры RoundRect, DrawRoundRect, FillRoundRect

Снова здравствуйте, посетители сайта о программировании на паскале для начинающих! На этой странице мы рассмотрим построение прямоугольников со скругленными краями с помощью процедур RoundRect, DrawRoundRect и FillRoundRect, в отличие от предыдущего материала, где мы разобрали построение обычных прямоугольников без скругления.

В зависимости от того какой прямоугольник со скругленными краями вам нужен – залитый с границей, незалитый с границей или залитый без границы, – вы можете использовать соответственно процедуры RoundRect, DrawRoundRect или FillRoundRect, поскольку в разных задачах свои требования. Но обо всем по порядку, и начнем с определения первой подпрограммы.

Процедура RoundRect

**procedure** RoundRect(x1,y1,x2,y2,w,h: integer);

— Рисует заполненный прямоугольник со скругленными краями; (x1,y1) и (x2,y2) задают пару противоположных вершин, а w и h – ширину и высоту эллипса, используемого для скругления краев

Прямоугольник, нарисованный с помощью **RoundRect**, имеет границу и заливку, поэтому границе можно придать цвет и толщину, а область самого прямоугольника разукрасить в определенный цвет. Вот как это делать в программе.

uses
  GraphABC;

var
  x1, y1, x2, y2, w, h: integer;

begin
  SetPenWidth(5); //толщина границы прямоугольника
  SetPenColor(clRed); //цвет границы
  SetBrushColor(clYellow); //цвет заливки прямоугольника
  x1 := 50; y1 := 50; //координаты левой верхней вершины
  x2 := 300; y2 := 250; //координаты правой нижней вершины
  w := 50; h := 50; //ширина и высота эллипса для скругления краев
  RoundRect(x1, y1, x2, y2, w, h) { <-- рисуем заполненный 
  прямоугольник со скругленными краями с координатами 
  противоположных вершин (x1, y1) и (x2, y2) }
end.

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

Заполненный прямоугольник с границей со скругленными краями в Pascal

Причем для простого вывода прямоугольника использовать переменные x1, y1, x2, y2, w, h не обязательно – вместо них можно вставить сами их значения в процедуру.

Процедура DrawRoundRect

**procedure** DrawRoundRect(x1,y1,x2,y2,w,h: integer);

— Рисует границу прямоугольника со скругленными краями; (x1,y1) и (x2,y2) задают пару противоположных вершин, а w и h – ширину и высоту эллипса, используемого для скругления краев

Эта процедура отсутствует в простом PascalABC, поэтому будем запускать среду PascalABC.Net. Обратим внимание, что DrawRoundRect рисует только границу скругленного прямоугольника, но не заливает его, поэтому использовать кисть Brush для заливки не имеет смысла, поскольку она не сработает.

uses
  GraphABC;

var
  x1, y1, x2, y2, w, h: integer;

begin
  SetPenWidth(3); //толщина линии
  SetPenColor(clGreen); //цвет линии
  x1 := 50; y1 := 50; //координаты левой верхней вершины
  x2 := 300; y2 := 250; //координаты правой нижней вершины
  w := 50; h := 50; //ширина и высота эллипса для скругления краев
  DrawRoundRect(x1, y1, x2, y2, w, h) { <-- Рисуем границу 
  прямоугольника со скругленными краями с координатами 
  противоположных вершин (x1, y1) и (x2, y2) }
end.

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

Граница прямоугольника со скругленными краями в Pascal

Процедура FillRoundRect

**procedure** FillRoundRect(x1,y1,x2,y2,w,h: integer);

— Заполняет внутренность прямоугольника со скругленными краями; (x1,y1) и (x2,y2) задают пару противоположных вершин, а w и h – ширину и высоту эллипса, используемого для скругления краев

Последняя процерура FillRoundRect выводит на экран заполненный прямоугольник со скругленными краями, но без границы, поэтому в определении и сказано, что не рисует, а заполняет внутренность. В этом случае перо Pen использовать для толщины и цвета границы не имеет смысла, ведь никакой границы нет.

uses
  GraphABC;

var
  x1, y1, x2, y2, w, h: integer;

begin
  SetBrushColor(clBrown); //цвет заливки прямоугольника
  x1 := 50; y1 := 50; //координаты левой верхней вершины
  x2 := 300; y2 := 250; //координаты правой нижней вершины
  w := 50; h := 50; //ширина и высота эллипса для скругления краев
  FillRoundRect(x1, y1, x2, y2, w, h) { <-- заполняем внутренность 
  прямоугольника со скругленными краями с координатами 
  противоположных вершин (x1, y1) и (x2, y2) }
end.

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

**unit** GraphABC;: Модуль предоставляет константы, типы, процедуры, функции и классы для рисования в графическом окне

Заполняем внутренность прямоугольника со скругленными краями в Pascal

Вот похожие темы:

Процедуры Circle, DrawCircle, FillCircle
Процедуры Ellipse, DrawEllipse, FillEllipse
Rectangle, DrawRectangle, FillRect/FillRectangle