Registriert seit: 17. Jan 2007
1.169 Beiträge
Turbo Delphi für Win32
|
Re: Kreis in Vier teile einteilen ?
10. Jun 2007, 22:44
Hallo,
wenn ich dich richtig verstanden habe, so in etwa:
Delphi-Quellcode:
procedure Kreis4Farben(cav: TCanvas; iLeft, iTop, DMesser: integer);
var
PTemp: TPoint;
Halb, Viertel, DreiV: integer;
begin
Halb := DMesser div 2;
Viertel := Halb div 2;
DreiV := Halb + Viertel;
with cav do
begin
GetViewportOrgEx( Handle, PTemp);
SetViewportOrgEx( Handle, iLeft, iTop, nil);
Pen.Color:= clRed;
Arc(0, 0, DMesser, DMesser, DMesser, Halb, Halb, 0);
MoveTo(DMesser, Halb);
LineTo(Halb, Halb);
MoveTo(Halb, Halb);
LineTo(Halb, 0);
Brush.Color := clRed;
FloodFill(DreiV, Viertel, clred, fsBorder);
Pen.Color:= clYellow;
Arc(0, 0, DMesser, DMesser, Halb, 0, 0, Halb);
MoveTo(0, Halb);
LineTo(Halb, Halb);
MoveTo(Halb, Halb);
LineTo(Halb, 0);
Brush.Color := clYellow;
FloodFill(Viertel, Viertel, clYellow, fsBorder);
Pen.Color := clGreen;
Arc(0, 0, DMesser, DMesser, 0, Halb, Halb, DMesser);
MoveTo(0, Halb);
LineTo(Halb, Halb);
MoveTo(Halb, Halb);
LineTo(Halb, DMesser);
Brush.Color := clGreen;
FloodFill(Viertel, DreiV, clGreen, fsBorder);
Pen.Color := clAqua;
Arc(0, 0, DMesser, DMesser, Halb, DMesser, DMesser, Halb);
MoveTo(DMesser, Halb);
LineTo(Halb, Halb);
MoveTo(Halb, Halb);
LineTo(Halb, DMesser);
Brush.Color:= clAqua;
FloodFill(DreiV, DreiV, clAqua, fsBorder);
SetViewportOrgEx( Handle, PTemp.X, PTemp.Y, nil);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Width:= 150;
Image1.Height:= 150;
Kreis4Farben(Image1.Canvas, 20,20, 100);
end;
EDIT:
Eventuell reicht dir Pie() ja auch schon:
Delphi-Quellcode:
procedure Kreis4Farben(cav: TCanvas; iLeft, iTop, DMesser: integer);
var
PTemp: TPoint;
Halb: integer;
begin
Halb := DMesser div 2;
with cav do
begin
GetViewportOrgEx( Handle, PTemp);
SetViewportOrgEx( Handle,iLeft, iTop, nil);
Pen.Color:= clRed;
Brush.Color := clRed;
Pie(0, 0, DMesser, DMesser, DMesser, Halb, Halb, 0);
Pen.Color:= clYellow;
Brush.Color := clYellow;
Pie(0, 0, DMesser, DMesser, Halb, 0, 0, Halb);
Pen.Color := clGreen;
Brush.Color := clGreen;
Pie(0, 0, DMesser, DMesser, 0, Halb, Halb, DMesser);
Pen.Color := clAqua;
Brush.Color:= clAqua;
Pie(0, 0, DMesser, DMesser, Halb, DMesser, DMesser, Halb);
SetViewportOrgEx( Handle, PTemp.X, PTemp.Y, nil);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Width:= 150;
Image1.Height:= 150;
Kreis4Farben(Image1.Canvas, 20, 20, 101);
end;
Gruß bitsetter
"Viele Wege führen nach Rom" Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
|