for i:=l to 50 do begin
gr[i].x := x0 + (i-l)*dx;
gr[i].y := y0 - Data[i]*dy;
end;
// grafikani quramiz
with forml.Canvas do begin
MoveTo(x0,y0); LineTo(x0,10); // ось Y
MoveTo(x0,y0); LineTo(200,y0); // ось X
Polyline(gr); // grafik
end;
end;
PolyLine uslubidan yopiq konturlarni chizishda ham foydalanish mumkin. Buning uchun massivning birinchi va oxirgi qiymatlari bir xilda bo’lishi kerak. PolyLine dan foydalanib yopiq kontur chizishga misol sifatida 10.4-listing keltirilgan. Sichqon tugmasi muloqot oynasining bir nuqtasida bosilsa, shu yerda 5 yulduz chiziladi (10.5-rasm). Yulduzcha chiziqlarining rangi sichqonchaning qaysi tugmasi bosilishiga bog’liq. Sichqoncha tugmasini bosilishi protsedurasi (MouseDown hodisasi) yulduzcha chizish protsedurasi StarLine ga murojaat qiladi va unga parametr sifatida sichqon bosilgan nuqtaning koordinatasini beradi. Parametr sifatida qabul qilingan nuqtaning koordinatasi chiziluvchi yulduzchaning markazi bo’ladi. Birinchi navbatda yulduzchaning uchlari va botiqlarini koordinatalari hisoblab chiqiladi va P massivga yoziladi. Keyin P massiv parametr sifatida PolyLine uslubiga beriladi. Yulduzchaning uchlari va botiqlarini hisoblashda Sin() va Cos() funksiyalardan foydalaniladi. Bu funksiyalarning argumentlari radianlarda berilishi kerak, ya’ni burchak gradusdagi qiymati Pi/180 ko’paytiriladi.
10.4-listing. Sichqon tugmasi bosilgan nuqtada yopiq sohani (yulduz) chizish
unit Stars_; interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
Do'stlaringiz bilan baham: |