![]() |
Rectangle und Ellipse
Also ich habe folgendes Problem.... ich habe ein 4eck Rectangle(0,0,200,200) und eine Ellipse(0,0,200,200)....
beide verschiedene Farben..nun will ich es in einer Zählschleife 10 mal durchlaufen lassen, sodass ich ein 4 eck habe, darin einen kreis, darin wieder ein 4eck, darin einen kreis, und das ganze 10 mal... dazu kommt das ich es mit dem befehl b:=3*(b div 4) machen möchte, wodurch es halt immer kleiner wird.... kann mir jemand helfen??? mfg. VeGA |
Re: Rectangle und Ellipse
achso und das ganze natürlich in einem Image^^ aber das dürfte ja jeden klar sein
|
Re: Rectangle und Ellipse
Liste der Anhänge anzeigen (Anzahl: 1)
Du hast eigentlich alles aufgezählt was du brauchst ... nun solltest du die Funktionen Rectangle und Ellipse innerhalb der Schleife mit Variablen statt mit festen Werten als Parametern aufrufen.
IMHO solltest du erst das Quadrat zeichnen dann den Kreis mit den gleichen Parametern. Mann müßte nur herausbekommen, um wie viel das jeweils innere Rechteck kleiner sein muss als das Äußeren. @all Falls VeGA vom Heinitz-Gymnasium kommst, sollte das angehängte Bild in etwa den den Effekt zeigen, den er hinbekommen will. :party: Herzlich Willkomen in der DP :party: Das wollt ich schon immer mal schreiben :mrgreen: MfG, Bug |
Re: Rectangle und Ellipse
also mein quelltext sieht so aus... klappt aber nicht
With Image3.Canvas do Begin; d:=200; c:=0; b:=200; for a:=0 to 10 do Begin; brush.color:=clred; Rectangle(c,d-b,c+b,d); b:=3*(b div 4); brush.color:=clyellow; Ellipse(c,d-b,c+b,d); End; End; komme irgendwie aber auhc nicht weiter |
Re: Rectangle und Ellipse
Hier mal ein rekursiver Vorschlag...
Delphi-Quellcode:
Aufruf...
procedure zeichnen(Canvas:TCanvas; x, y, width, tiefe:integer);
var R:TRect; begin if tiefe > 0 then begin R:=Rect(x-width div 2, y-width div 2, x+width div 2, y+width div 2); Canvas.Brush.Color:=clRed; Canvas.Rectangle(R); Canvas.Brush.Color:=clYellow; Canvas.Ellipse(R); zeichnen(Canvas, x, y, round(2*sqrt(2)*(width div 4)), tiefe-1); end; end;
Delphi-Quellcode:
Gruss
procedure TForm.ButtonClick(Sender: TObject);
var x, y:integer; begin x:=Image.Width div 2; y:=Image.Height div 2; if Image.Width < Image.Height then zeichnen(Image.Canvas, x, y, Image.Width, 10) else zeichnen(Image.Canvas, x, y, Image.Height, 10); end; Thorsten |
Re: Rectangle und Ellipse
also ist ja seht nett von euch aber ich bin nen ANfänger und da blicke ich mal garnet durch^^
|
Re: Rectangle und Ellipse
habs jetzt so weit gebracht aber klappt noch net ganz
With Image3.Canvas do Begin; d:=200; c:=200; b:=200; for a:=0 to 10 do Begin; brush.color:=clred; Rectangle(c-b,d-b,c-c+b,d-d+b); brush.color:=clyellow; Ellipse(c-b,d-b,c-c+b,d-d+b); b:=3*(b div 4); End; End; ...verzweiflung^^ |
Re: Rectangle und Ellipse
Ja, dir fehlt noch eine Kleinigkeit...
Delphi-Quellcode:
with Image3.Canvas do begin
d:=Image3.Height div 2; c:=Image3.Width div 2; if d < c then b:=d else b:=c; for a:=0 to 10 do begin Brush.Color:=clRed; Rectangle(c-b, d-b, c+b, d+b); Brush.Color:=clYellow; Ellipse(c-b, d-b, c+b, d+b); b:=round(2*sqrt(2)*(b div 4)); end; end; |
Re: Rectangle und Ellipse
ahhh...thx es klappt echt n1 danke^^ freu
danke danke danke |
Re: Rectangle und Ellipse
also mit dem neuen gehts net da bringt er mir eine fehlermeldung bei paintbox
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz