Алгоритмы вычерчивания графических примитивов

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

{$R *.dfm}Sign(Val: Single): ShortInt;Val > 0 then Result := 1 elseVal = 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

// Центр

X := X1 + (X2 - X1) div 2;

Y := Y1 + (Y2 - Y1) div 2;:= 0;i <= 359 do begin.Pixels[Trunc(X + xR * Sin(i)), Trunc(Y + yR * Cos(i))] := clLime;:= i + 0.1;;TMainForm.ButtonClearClick(Sender: TObject);PaintBox.Canvas do begin.Color := clBlack;(PaintBox.ClientRect);TMainForm.PaintBoxPaint(Sender: TObject);.Click;TMainForm.PaintBoxMouseDown(Sender: TObject;: TMouseButton; Shift: TShiftState; X, Y: Integer);:= X;:= Y;TMainForm.PaintBoxMouseUp(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);ElementsGroup.ItemIndex of

: Line(SX, SY, X, Y, PaintBox.Canvas);

: Circle(SX, SY, X, Y, PaintBox.Canvas);

: Ellipse(SX, SY, X, Y, PaintBox.Canvas);

end;

end.

 

Вывод: В ходе проделанной контрольной работы были разработаны алгоритмы. Была написана программа, которая изображает на поверхности формы графические примитивы: линии, круги, эллипсы.