Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Ellipsen zeichnen (https://www.delphipraxis.net/146301-ellipsen-zeichnen.html)

KucukMelek 17. Jan 2010 15:17


Ellipsen zeichnen
 
Hallo alle zusammen,

also irgendwie fühl ich mich hier wie ein zwerg, hab versucht, zu verstehn, was ihr alles schreibt, komm mir aber echt vor wie in China :(

naja...auf jeden fall machen wir grad in der schule in informatik so eine aufgabe, die ich wirklich nicht verstehe...

wir sollen durch buttonklick eine ellipse zeichnen. Und bei jedem klick auf button soll eine weitere ellipse, im halben radius von dem vorherigen ist, in die ellipse gezeichnet werden, und das so lange, bis der radius 3 ist.... Wie mach ich das??? :cry:

ich hab mal so angefangen, weiß aber nicht weiter :cry:

procedure TForm1.Button1Click(Sender: TObject);

begin
canvas.Brush.color:=random($FFFFF);
Canvas.Ellipse(0,0,form1.clientheight,form1.client width);
repeat
canvas.Ellipse(0 - (form1.ClientHeight div 2), 0 - (form1.clientwidth div 2), form1.ClientHeight div 2, form1.ClientWidth div 2);
until ??????

Luckie 17. Jan 2010 15:21

Re: Ellipsen zeichnen
 
Na, was ist denn der Radius? Die Abbruchbedingung hast du doch schon selber genannt.

Medium 17. Jan 2010 15:34

Re: Ellipsen zeichnen
 
Nen bissle blöd ist, dass eine Ellipse 2 Radien hat. Man müsste also definieren, ob einer der beiden 3 unterschreiten muss, oder beide die unterschritten haben müssen um abzubrechen ;). Was anderes ist es, wenn der Client rechteckig ist, dann haste ja nen Kreis.

fishly 17. Jan 2010 15:41

Re: Ellipsen zeichnen
 
Zitat:

Was anderes ist es, wenn der Client rechteckig ist, dann haste ja nen Kreis.
sorry will nicht klugschei*en, aber du meintest bestimmt quadratisch...

KucukMelek 17. Jan 2010 15:54

Re: Ellipsen zeichnen
 
Zitat:

Zitat von Luckie
Na, was ist denn der Radius? Die Abbruchbedingung hast du doch schon selber genannt.

ja, aber wie soll ich die Abbruchbedingung ausschreiben? Da komm ich nicht weiter :(

Luckie 17. Jan 2010 15:57

Re: Ellipsen zeichnen
 
Hast du doch schon gesagt: Wenn der Radius kleiner als 3 ist.

KucukMelek 17. Jan 2010 15:58

Re: Ellipsen zeichnen
 
Zitat:

Zitat von Luckie
Hast du doch schon gesagt: Wenn der Radius kleiner als 3 ist.

Schön und gut! Aber wie soll ich das in der programmiersprache schreiben?

Luckie 17. Jan 2010 16:01

Re: Ellipsen zeichnen
 
Na was ist denn das mathematische Zeichen für größer und kleiner?

KucukMelek 17. Jan 2010 16:03

Re: Ellipsen zeichnen
 
Zitat:

Zitat von Luckie
Na was ist denn das mathematische Zeichen für größer und kleiner?

< > oder? ja ich dachte mir schon, dass es irgendwie heißt **** < 3... aber ellipse.radius oder so heißt es ja nicht...

Luckie 17. Jan 2010 16:05

Re: Ellipsen zeichnen
 
Du hast doch beim Zeichenen den Radius angegeben.

KucukMelek 17. Jan 2010 16:07

Re: Ellipsen zeichnen
 
Zitat:

Zitat von Luckie
Du hast doch beim Zeichenen den Radius angegeben.

also würde es heißen

until Canvas.Ellipse(0,0,form1.clientheight,form1.client width) < 3; ?

Luckie 17. Jan 2010 16:08

Re: Ellipsen zeichnen
 
Du hast vier Parameter. Welche davon sind der Radius?

KucukMelek 17. Jan 2010 16:10

Re: Ellipsen zeichnen
 
Zitat:

Zitat von Luckie
Du hast vier Parameter. Welche davon sind der Radius?

form1.clientheight div 2 und form1.clientwidth div 2? :glaskugel:

Luckie 17. Jan 2010 16:11

Re: Ellipsen zeichnen
 
Und wie muss jetzt die Abbruchbedingung aussehen?

KucukMelek 17. Jan 2010 16:13

Re: Ellipsen zeichnen
 
Zitat:

Zitat von Luckie
Und wie muss jetzt die Abbruchbedingung aussehen?

until canvas.ellipse(form1.clientheight div 2, form1.clientwidth div 2) < 3 ?

Medium 17. Jan 2010 16:15

Re: Ellipsen zeichnen
 
Zitat:

Zitat von fishly
Zitat:

Was anderes ist es, wenn der Client rechteckig ist, dann haste ja nen Kreis.
sorry will nicht klugschei*en, aber du meintest bestimmt quadratisch...

Völlig legitim, du hast natürlich Recht :)

Luckie 17. Jan 2010 16:17

Re: Ellipsen zeichnen
 
WAS IST DER RADIUS?

KucukMelek 17. Jan 2010 16:21

Re: Ellipsen zeichnen
 
Zitat:

Zitat von Luckie
WAS IST DER RADIUS?

tschuldigung :( ich weiß halt wirklich nicht wie... naja :(

ellipse (form1.clientheight div 2, form1.clientwidth div 2) < 3?

KucukMelek 17. Jan 2010 16:28

Re: Ellipsen zeichnen
 
gut dann eben nicht.... ihr wart echt voll lieb :(

fishly 17. Jan 2010 18:45

Re: Ellipsen zeichnen
 
Delphi-Quellcode:
until (clientheight div 2 < 3) or (clientwidth div 2 < 3);
und ne Ellipse hat keinen Radius... Denk mal drüber nach!

EDIT: Wenn du nicht mal die Grundzüge des logischen Denkens besitzt, solltest du dich nicht ans Programmieren wagen.

Aphton 17. Jan 2010 19:25

Re: Ellipsen zeichnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von fishly
Delphi-Quellcode:
until (clientheight div 2 < 3) or (clientwidth div 2 < 3);
EDIT: Wenn du nicht mal die Grundzüge des logischen Denkens besitzt, solltest du dich nicht ans Programmieren wagen.

Fishly, sei doch nicht so streng; ichn ehme an, du weißt, dass LOGIK nicht immer selbstverständlich ist...
Selbst erfahrenste Programmierer machen gelegentlich dumme Fehler.

Threadstarter:
Code:
Definiere dir eine Variable namens Radius vom Typ Integer. (var Radius: Integer;)
Setze zu Beginn ClientWidth auf ClientHeight (ClientWidth := ClientHeight;)
Anschließend weißt du der Variable Radius den Wert von (ClientWidth div 2) zu (Radius := ClientWidth div 2;)
Nun gehst du in eine Schleife hinein, in der du
1. Einen Kreis mit dem (die Variable) Radius zeichnest und
2. Den (die Variable) Radius durch 2 dividierst.
die Bedingung der Schleife ist, so wie du es schon gesagt hast:
Radius < 3
Achte beim Zeichnen darauf, dass du relativ zum Fenstermittelpunkt zeichnest, dh:
Soetwas wie:
linke Ecke X = MittelpunkX - Radius
rechte Ecke X = MittelpunkX + Radius
usw.

MfG

fishly 17. Jan 2010 19:42

Re: Ellipsen zeichnen
 
Zitat:

Fishly, sei doch nicht so streng;
Normalerweise nicht... Mich hat nur gestört, dass sich unser Freund schon wieder abgeseilt hat, nur, weil er nicht sofort ne Antwort bekam.
Ich schreib auch nicht viel in Foren, aber solche Forenhopper find ich unsympathisch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:30 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