Головна

Практична робота № 17 | Практична робота № 18 | Практична робота № 19 | лістинг підпрограми | Практична робота № 20 | Завдання для самостійного виконання | Знаходження індексу в масиві випадкових чисел | Практична робота № 23 | лістинг підпрограм | Практична робота № 25 |

© um.co.ua - учбові матеріали та реферати

графіка

  1. VIII. Графіка на Паскалі
  2. Графіка і каліграфія
  3. Графікали? процесор ??рилиси мен они? негізгі ж?мис істеу прінціпін т?сіндірі?із
  4. Графікали? процессорге ани?тама бері?із. GPU мен CPU айирмашили?ин к?рсеті?із.
  5. Графікали? процессорге ани?тама бері?із. Они? ?изметі мен ерекшеліктеріне то?тали?из.
  6. Демографія (інфографіка)

Для малювання статичних малюнків використовується компонент PaintBox (панель System). Цей компонент розміщується на формі у вигляді прозорого пунктирного квадрата, і в його межах можна малювати. Малювання виконується зверненням до властивості Canvas (графічна канва) цього компонента: PaintBox1.Canvas. У нього в свою чергу є властивість Pixels (PaintBox1.Canvas.Pixels), яке представляє собою матрицю, двовимірний масив заданого розміру - поточечной образ канви, кожен елемент - окрема точка. У Pixels [] відлік точок (пікселів екрану) починається з 0.

Координати x, y відраховуються від верхнього лівого кута, тобто він вважається точкою з координатою (0, 0), збільшення по осі x йде зліва направо, а по осі y - зверху вниз. Для конкретної точки вказується колір. Функція RGB () формує колір комбінацією інтенсивності червоного, зеленого і синього (інтенсивність задається числом від 0 до 255). Наприклад, чорний - RGB (0,0,0), червоний - rgb (255,0,0), синій - rgb (0,0,255), білий - rgb (255,255,255).

Мета роботи -створити програму, що виконує наступні дії:

1. Розмістити на формі компонент PaintBox.

2. Заповнити доступну канву 300 червоними крапками в випадкових позиціях по натиснень на деяку кнопку.

3. Для виходу з програми необхідно зафіксувати покажчик миші на закриває кнопці в рядку заголовка.

4. Записати код в обробнику натиснення.

 малюнок 41


procedureTForm1.Button1Click (Sender: TObject);
vari, x, y: Integer;
begin

randomize;
fori: = 1 to300 do
begin
 x: = random (100);
 y: = random (100);
 PaintBox1.Canvas.Pixels [x, y]: = RGB (255,0,0);
end
end;

5. Змінити RGB (255,0,0) на RGB (random (255), random (255), random (255)).

 малюнок 42


6. Заповнити фон чорним кольором перед початком виконання програми за допомогою методу канви FillRect. Метод викликається із зазначенням прямокутної області заливки кольором: FillRect (Rect (0, 0, 100, 100)) // координати верхнього лівого і правого нижнього кутів

Вкладене слово Rect формує дане типу "прямокутник". Перед викликом FillRect треба вказати колір заливки: PaintBox1.Canvas.Brush.Color: = RGB (0,0,0);

 малюнок 43


procedureTForm1.Button1Click (Sender: TObject);
vari, x, y: Integer;
begin

PaintBox1.Canvas.Brush.Color: = RGB (0,0,0);

PaintBox1.Canvas.FillRect (Rect (0,0,100,100));

fori: = 1 to300 do
begin
 x: = random (100);
 y: = random (100);
 PaintBox1.Canvas.Pixels [x, y]: = RGB (random (255), random (255), random (255));

end
end;

7. Заповнити канву випадковими різнокольоровими лініями різної товщини. Лінія малюється за допомогою методів (спочатку задається початкова точка, потім кінцева):

PaintBox1.Canvas.MoveTo (10,10);

PaintBox1.Canvas.LineTo (50,50);

Колір лінії і товщина задаються властивістю канви Pen (олівець). Pen.Color - колір олівця), Pen.Width - товщина лінії в пікселах (за замовчуванням - 1).

 малюнок 44


fori: = 1 to300 do

Begin

PaintBox1.Canvas.Pen.Color: = RGB (random (255), random (255), random (255));

PaintBox1.Canvas.Pen.Width: = random (3) +1;

x: = random (100);

y: = random (100);

PaintBox1.Canvas.MoveTo (x, y);

x: = random (100);

y: = random (100);

PaintBox1.Canvas.LineTo (x, y); end

8. Заповнити канву еліпсами випадковим чином (кола, кола - окремий випадок еліпса). Еліпси малюються методом Ellipse () з чотирма параметрами - координатами верхнього лівого і правого нижнього кутів прямокутника, в який еліпс вписується. Облямівка еліпса малюється відповідно до параметрів властивості Pen канви, а заливається еліпс всередині кольором кисті Brush канви.

 малюнок 45


fori: = 1 to300 do
begin
 // Колір і ширина облямівки майбутнього еліпса
 PaintBox1.Canvas.Pen.Color: = RGB (random (255), random (255), random (255));
 PaintBox1.Canvas.Pen.Width: = random (3) +1;

// Колір заливки нутрощі еліпса
 PaintBox1.Canvas.Brush.Color: = rgb (random (255), random (255), random (255));

// Координати кутів прямокутника, в який вписується еліпс
 x: = random (150);
 y: = random (150);
 x2: = random (150);
 y2: = random (150);

// Вписуємо еліпс
 PaintBox1.Canvas.Ellipse (x, y, x2, y2);
end;

9. Зробити канву на весь екран. Заповнити різнокольоровими прямокутниками в випадкових позиціях і випадкових розмірів за допомогою FillRect ().

10. Створити графічний образ так званого безлічі Жюліа.

procedureTForm1.Button1Click (Sender: TObject);
varRE, IM, RE1, IM1: REAL;
 V, X, Y: INTEGER;

// Вивід точки заданого кольору
procedurePUTPIXEL (x, y, c: Integer);
varcc: TColor;
begin

casec mod8 of
 0: cc: = clBlack;
 1: cc: = clRed;
 2: cc: = clLime;
 3: cc: = clYellow;
 4: cc: = clBlue;
 5: cc: = clFuchsia;
 6: cc: = clAqua;
 7: cc: = clWhite;
end;

PaintBox1.Canvas.Pixels [x, y]: = cc;
end;

procedureQWA;
begin
 RE1: = RE * RE-IM * IM;

IM1: = 2 * RE * IM;

RE: = RE1;

IM: = IM1;
end;
procedureKUB;

Begin

RE1: = RE * (RE * RE-3 * IM * IM);
 IM1: = IM * (3 * RE * RE-IM * IM);

RE: = RE1;

IM: = IM1;

end;

Begin
 PaintBox1.Canvas.Brush.Color: = rgb (0,0,0);
 PaintBox1.Canvas.FillRect (Rect (0,0,640,480));

X: = - 320;
 REPEAT Y: = - 240;
 REPEAT V: = 0; RE: = - 1. + 0.001 * X; IM: = 0 + 0.001 * Y;
 REPEAT KUB; RE: = RE + 1.00003; IM: = IM + 1.01828201638;
ifRE * RE> 50 thenbreak;
ifIM * IM> 50 thenbreak;
 V: = V + 1;
 UNTIL V> 40;
if(ABS (RE)> 10) or(ABS (IM)> 1000)

Then

begin
 PUTPIXEL ((X + 320), (Y + 240), TRUNC (V));

end
elsePUTPIXEL ((X + 320), (Y + 240), 0);
 Y: = Y + 1;
 UNTIL Y> 241;
 X: = X + 1;
 UNTIL X> 320;
End;

 



Interface | Практична робота № 27