Вторник, 03.12.2024, 20:22
Главная | Регистрация | Вход Приветствую Вас Гость | RSS


Меню сайта


Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Тестування онлайн
тестування онлайн 


Социальные закладк

 3. Створення програмного коду для малювання фігур (ліній, секторів ламаних) у процесі виконання програми за їх координатами на координатній площині.

Для малювання ліній і фігур у процесі виконання програми на формі у середовищі програмування Lazarus потрібно розміщувати полотно. Для цього звертаються до властивості Canvas - властивості об'єкта form, який у свою чергу є об'єктом, що має свої методи та властивості:

  • методи використовують для побудови на полотні різних фігур;
  • властивості - щоб задавати колір лінії, іі товщину тощо.
Розмір полотна визначається значеннями властивостей Height -  кількість точок по вертикалі та  Width -  по горизонталі.
Полотно складається з окремих точок - пікселів, координати яких задаються значеннями x  та y.

Як і в графічному редакторі,   у  середовищі Lazarus можна малювати олівцем та пензликомДля цього використовують властивості полотна Pen та Brush:
        
form1.canvas.pen або    form1.canvas.brush.

Малювати можна різні об'єкти. Для цього використовують відповідні методи полотна.

Можна задавати значення властивостей інструментів малювання:

  • Колір, товщина та стиль цих об'єктів визначаються значеннями властивості pen:

form1.canvas.pen.color -  колір;

form1.canvas.pen.width - ширина (ціле число);

form1.canvas.pen.style - стиль:

  • Колір і стиль заливки замкнених фігур - значеннями властивості Brush:

Створюючи зображення, що складається з графічних примітивів, варто спочатку встановити значення властивостей контуру та внутрішньої області фігури, після чого відобразити саму фігуру, наприклад:

Вправа 4. 

Программный код
procedure TForm1.Button1Click(Sender: TObject);
begin
  Canvas.Pen.Color := clGreen;
// цвет контура -  зеленый
Canvas.Pen.Width := 3; // толщина контура -  3 пикселя
Canvas.Brush.Color := clRed; // цвет заливки - красный
Canvas.Brush.Style  := bsDiagCross; (* стиль заливки —сетка с диагональными линиями*)
Canvas.Rectangle (10, 10, 350, 100); (* прямоугольник с противоположными вершинами в точках (10, 10) и  (350, 100)  и сторонами, параллельными осям координат *)    
end;  

Вправа 5а.

Интерфейс проекта

Программный код

  procedure TForm1.Button1Click(Sender: TObject);
begin
      form1.Canvas.Pen.Color:= clred; 
// значение свойства контура
   form1.Canvas.Pen.width:= 4; // значение свойства контура
   form1.Canvas.Pen.style:= pssolid; // значение свойства контура
   form1.Canvas.moveTo(200,10);//установить перо в точку с координатами х=200, у = 10.
   form1.Canvas.LineTo(400,400);// выполнить перемещение пера в точку с координатами х=400, у=400.
    end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   form1.Canvas.Pen.Color:= clolive;
// значение свойства контура
   form1.Canvas.Pen.width:= 4; // значение свойства контура
   form1.Canvas.Pen.style:= pssolid; // значение свойства контура
   form1.Canvas.moveTo(500,300);
   form1.Canvas.LineTo(40,480);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
   form1.Canvas.Pen.Color:= clblue; 
// значение свойства контура
   form1.Canvas.Pen.width:= 4; // значение свойства контура
   form1.Canvas.Pen.style:= pssolid; // значение свойства контура
   form1.Canvas.brush.Color:= clolive; { значение свойства внутренней области фигуры}
   form1.Canvas.Rectangle(20,20,300,300);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
   form1.Canvas.Pen.Color:= clblue; 
// значение свойства контура
   form1.Canvas.Pen.width:= 4; // значение свойства контура
   form1.Canvas.Pen.style:= pssolid; // значение свойства контура
   form1.Canvas.brush.Color:= clnavy; { значение свойства внутренней области фигуры}
   form1.canvas.Ellipse(250,150,450,50);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  form1.Height:=504;
  form1.width:= 482;
end;

Вправа 5б. Використання операторa With в програмному коді.

Якщо ви працюєте з полями однієї і тієї ж записи, то цієї проблеми можна уникнути завдяки оператору приєднання WITH, приклад:

Программный код

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);
begin
with form1.Canvas do    
// оператор присоединения WITH
     begin                // запись команд рисования на полотне
  Pen.Color:=clRed;
  Pen.width:=3;
  Pen.Style:=pssolid;
  Line(10,10,60,70);
      end;
  end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);
begin
       with form1.Canvas do 
// оператор присоединения WITH
           begin
 
// прием стирания рисунка
  brush.Color:=cldefault;  FillRect(0,0,500,165);
           end;
end;        

procedure TForm1.Button2MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);
begin
with form1.Canvas do    
// оператор присоединения WITH
     begin
  Pen.Color:=clgreen;
  Pen.width:=3;
  pen.Style:=pssolid;
  Brush.Color:=clgreen;
  Brush.Style:=bssolid;
  ellipse(100,60,200,120);
end;
end;

procedure TForm1.Button3MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);
begin
     with form1.Canvas do  
// оператор присоединения WITH
           begin
       Pen.Color:=clblue;
       Pen.width:=3;
       pen.Style:=pssolid;
       Brush.Color:=clblue;
       Brush.Style:=bssolid;
       rectangle(250,80,350,160);
          end;
 end;


 

продовження

Форма входа
Поиск
Календарь
«  Декабрь 2024  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Рейтинг@Mail.ru
    Copyright MyCorp © 2024
    Конструктор сайтов - uCoz