Cizilmis nesnelerin icini boyama

Başlatan z, 08 Şubat 2009, 14:57:16

z

Diyelimki line komutu ile kenarlari birlestirilmis bir nesne cizdik. (Kare, yamuk, ucgen vs)

Bunun icini boyamak icin delphide hazirda bir komut varmi?

Nesnem dikdortgen olsaydi fillrect komutu isimi goruyordu. Ancak nesnem cevresi kapali herhangi bir geometrik sekil.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ftsahin

procedure TForm1.Button1Click(Sender: TObject);
begin
  image1.width := 140;
  image1.height := 140;
  image1.Canvas.Brush.color:=clgreen;
  image1.canvas.floodfill(38,18,clblack,fsborder);
  image1.Canvas.pen.color:=clblack;
  image1.Canvas.moveto(10,10);
  image1.Canvas.lineto(100,20);
  image1.Canvas.lineto(120,50);
  image1.Canvas.lineto(10,10);
  image1.Canvas.Brush.color:=clred;
  image1.canvas.floodfill(38,18,clblack,fsborder);
end;



Floodfill komutu sanırım işinizi görür. Parametre olarak (x,y,color,fillstyle )
kullanılıyor. color yerine çizdiğiniz line rengini yazıp boyama şekli için fsSurface kullanırsanız istediğiniz gibi boyaması lazım.

ahmet2004

Canvas.Brush.Color:=clblue;
Canvas.Pen.Color := clred;

Canvas.Polygon([point(100,120),point(100,150),point(300,220),point(300,120),point(100,120)]);

z

Cevaplar icin teşekkürler.

Ftsahin senin yontemi kullandim ve istedigim gibi oldu.

Ahmet2004

Verdigin komut aslinda benim daha cok isime geliyordu ancak

polygonu olusturan noktalarin sayisi her cizimde farkli olabilir.

Bu nedenle verdigin komutu kullanamadim.

Verdigin ornekte 5 nokta tanimlanmis. 6 nokta tanimlansaydi programin yazim asamasinda 6 noktayi point komutlari ile programa gomebilirdim.

Nokta sayisi parametrik olsaydi  runtime asamasinda bunlari tanimlayabilirmiydik.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com