Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Rectangle und Ellipse (https://www.delphipraxis.net/115233-rectangle-und-ellipse.html)

VeGA 8. Jun 2008 22:07


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

VeGA 8. Jun 2008 22:08

Re: Rectangle und Ellipse
 
achso und das ganze natürlich in einem Image^^ aber das dürfte ja jeden klar sein

BUG 8. Jun 2008 22:36

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

VeGA 8. Jun 2008 23:00

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

omata 8. Jun 2008 23:10

Re: Rectangle und Ellipse
 
Hier mal ein rekursiver Vorschlag...
Delphi-Quellcode:
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;
Aufruf...
Delphi-Quellcode:
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;
Gruss
Thorsten

VeGA 8. Jun 2008 23:14

Re: Rectangle und Ellipse
 
also ist ja seht nett von euch aber ich bin nen ANfänger und da blicke ich mal garnet durch^^

VeGA 8. Jun 2008 23:18

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^^

omata 8. Jun 2008 23:22

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;

VeGA 8. Jun 2008 23:33

Re: Rectangle und Ellipse
 
ahhh...thx es klappt echt n1 danke^^ freu

danke danke danke

VeGA 8. Jun 2008 23:37

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 15:30 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz