o begin.Pixels [Trunc (X), Trunc (Y)]: = clBlue;
X: = X + dX;: = Y + dY;: = i + 1
end;
. Алгоритм побудови кола. br/>
В
В В
Рис. 3. Коло
Коло - геометричне місце точок <# "100" src = "doc_zip7.jpg"/>
Рис. 4. Еліпс
Еліпсом - називається геометричне місце точок, сума відстаней від яких до двох заданих точок F 1 і F 2, званих фокусами еліпса, є величина постійна.
Цей алгоритм відрізняється тільки лише тим, що використовується не один радіус, а два: по осі oX і oY. Відповідно промальовування зміниться тільки лише приростами різних радіусів:
Canvas.Pixels [Trunc (X + xR * Sin (i)), Trunc (Y + yR * Cos (i))]: = clLime;
В
Рис. 5. Побудова еліпса
Блок-схеми алгоритмів:
Блок-схема лінії
В
Блок-схема кола
В
Блок-схема еліпса
В
Лістинг програми:
unit ULab1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, XPMan; = class (TForm): TButton;: TRadioGroup;: TPaintBox; ButtonClearClick (Sender : TObject); PaintBoxPaint (Sender: TObject); PaintBoxMouseDown (Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer); PaintBoxMouseUp (Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer) ;;: TMainForm;, SY: Word; Line (X1, Y1, X2, Y2: Word; Canvas: TCanvas); Circle (X1, Y1, X2, Y2: Word; Canvas: TCanvas); Ellipse (X1, Y1, X2, Y2: Word; Canvas: TCanvas);
{$ R *. dfm} Sign (Val: Single): ShortInt; Val> 0 then Result: = 1 elseVal <0 then Result: =-1Result: = 0; Line (X1 , Y1, X2, Y2: Word; Canvas: TCanvas); i, Leng: Word;, Y, dX, dY: Single; abs (X2 - X1)> = abs (Y2 - Y1) then Leng: = abs ( X1 - X2) Leng: = abs (Y1 - Y2);// Довжина
// Прирости
dX: = (X2 - X1)/Leng;
dY: = (Y2 - Y1)/Leng;: = X1 + 0.5 * Sign (dX);: = Y1 + 0.5 * Sign (dY);: = 1; i <= Leng do begin.Pixels [Trunc (X), Trunc (Y)]: = clBlue;
X: = X + dX;: = Y + dY;: = i + 1
end; Circle (X1, Y1, X2, Y2: Word; Canvas: TCanvas); R, X, Y: Word;: Single;: = abs (X1 - X2) div 2;//Радіус
// Центр
X: = X1 + (X2 - X1) div 2;
Y: = Y1 + (Y2 - Y1) div 2;: = 0; i <= 359 do begin.Pixels [Trunc (X + R * Sin (i)), Trunc (Y + R * Cos (i))]: = clRed;: = i + 0.1;; Ellipse (X1, Y1, X2, Y2: Word; Canvas: TCanvas); xR, yR, X, Y: Word;: Single; : = abs (X1 - X2) div 2;// Радіус X: = abs (Y1 - Y2) div 2;// Радіус Y
// Центр