Autor Beitrag
Iser
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Di 28.04.09 08:55 
Meine Aufgabe ist es ein Programm zu schreiben, dass ein Eingabefeld und einen Button hat.
Dieses Programm soll Symetrische Ecken zeichnen. Wenn Beispielsweise eine 4 in das Feld eingegeben wird, soll ein symetrisches Viereck gezeichnet werden. Wenn man eine 6 eingibt soll ein symetrisches Sechseck rauskommen
Bitte um Hilfe, weil ich keine Ahnung hab wie das funktionieren soll ;D

mfg
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 28.04.09 09:13 
Hallo und :welcome: im Forum!

Diese Seite könnte dir bei den mathematischen Grundlagen dazu helfen:
www.mathematische-ba...leien.de/vieleck.htm

Wenn du dann weißt wie du die Kordinaten berechnest, dann braucht du nur noch Canvas.MoveTo und Canvas.LineTo oder wenn du möchtest direkt Canvas.Polygon.
www.delphiseiten.de/lex11/lex1101.html


Zuletzt bearbeitet von jaenicke am Di 28.04.09 09:14, insgesamt 1-mal bearbeitet
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Di 28.04.09 09:13 
Überleg doch mal, wie Du es per Hand machen würdest.
Ich würde mir einen Kreis malen. Dann den Kreis in entsprende Anzahl Tortenstück teilen und schon hast Du die Ecken deines Vielecks.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Iser Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Di 28.04.09 11:41 
Wie das ganze theortisch funktioniert weiß ich leider auch nicht ganz. Ich weiß nur dass man auch mit Sinus arbeiten muss. Allerdings habe ich auch keinen Plan wie ich sowas in Delphi umsetzte.
Könne mir mal jemand einen Lösungsansatz aufzeigen, damit ich einen Anhaltspunkt habe, weil so komme ich absolut nicht weiter
Vorallem weiß ich nicht wie man das mit der Anzahl der Ecken, die man in ein Feld eintragen soll, verwirklichen kann

mfg
Xabitire
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 114

Win Xp, Win Vista
D6 PE, D7 PE
BeitragVerfasst: Di 28.04.09 12:25 
Hi,

ist eigentlich ganz einfach! Sagen wir mal, du willst ein Neuneck zeichnen. Dann hast du auf deinem Kreis 9 Eckpunkte mit jeweils gleichem Abstand auf der Kreislinie. Willst du nun den entsprechenden Winkel am Kreis haben, der diesen Abstand beschreibt nimmst du 360° und teilst es durch 9. Also im Beispiel 40°. Jetzt nehmen wir noch die Formel zur Drehung eines Punktes um den Nullpunkt:

ausblenden Quelltext
1:
2:
x' = x * cos(alpha) - y * sin(alpha)
y' = x * sin(alpha) + y * cos(alpha)


x' und y' sind die Position des neuen Punktes, x und y die Position des alten Punktes. Starten kann man auf einem belibigen Punkt des Kreies. Für unser Beispiel müssten wir 8 mal den nächsten Punkt ausrechnen, beim 9. mal wären wir wieder im Ausgangspunkt.

Wichtig ist noch noch, dass diese Formel nur für den Nullpunkt gilt, das heißt du startest am besten mit x = "Radius des Kreises" und y = "0" und verschiebst dann die entsprechenden Ergebnisse um den den x- und y-Wert die dein Kreismittelpunkt auf der Zeichenebene hat. Auch nicht zu vergessen ist, dass die Funktionen cos und sin in Delphi im Bogenmaß und nicht im Gradmaß rechnen, dass heißt entweder umrechnen oder gleich durch 2*Pi teilen statt 360°. :wink:

MFG Blackbird8690

_________________
What to do if you find yourself stuck with no hope of rescue. Consider how lucky you are that life has been good to you so far. Alternatively, if life hasn't been good to you so far, consider how lucky you are that it won't be troubling you much longer.