![]() |
N-Eck mit Canvas zeichnen
Liste der Anhänge anzeigen (Anzahl: 1)
Hi!
Ich hab ein Mathematisches Problem: Und zwar will ich die Figur, die ihr in der Skizze im Anhang seht, mit Canvas zeichnen. r und n (Die Anzahl der Ecken; n € N ) sollen angegeben werden können. Könnt ihr mir helfen? Gruß Edit: h ist unwichtig, einfach ignorieren. n und r sind nicht konstant |
Re: N-Eck mit Canvas zeichnen
Hi Moritz,
die wahrscheinlich beste Möglichkeit ist mit Trig-Funktionen zu arbeiten.
Delphi-Quellcode:
ist ungetestet, der Ansatz sollte aber richtig sein :-?
function DegToRad(Deg: Real): Real;
begin Result := Deg*Pi/180; end; procedure ZeichneNEck(xm, ym, r: Real; n: Integer); var i: Integer; xn, yn: Real; begin Canvas.MoveTo(Round(xm+r),Round(ym)); for i := 1 to n do begin xn := xm + Round(r*cos(DegToRad(i*360/n))); yn := ym - Round(r*sin(DegToRad(i*360/n))); Canvas.LineTo(Round(xn), Round(yn)); end; end; Greetz alcaeus [edit]Alle Fehler korrigiert, müsste funktionieren.[/edit] |
Re: N-Eck mit Canvas zeichnen
Hi,
sorry, da ist nur ein Strich und mit den Funktionen kenn ich mich leider nich aus :( Gruß, moritz P.S.: Ich hab dich mal per ICQ angesprochen. |
Re: N-Eck mit Canvas zeichnen
Hi Moritz,
das hast du davon wenn du Warnungen ignorierst. :mrgreen: Zitat:
Delphi-Quellcode:
Die Richtige Zeile lautet:
yn := yn - Round(r*sin(DegToRad(i*360/n)));
Delphi-Quellcode:
Greetz
yn := ym - Round(r*sin(DegToRad(i*360/n)));
alcaeus PS: mal sehn wie viele den Fehler gefunden hätten :mrgreen: |
Re: N-Eck mit Canvas zeichnen
Super, Danke!!
|
Re: N-Eck mit Canvas zeichnen
So, nächstes Problem: Ich finde ich in der Skizze h raus, wenn ich nur r und n kenne?
Ich hab leider keine Lösung gefunden :( Gruß, Moritz |
Re: N-Eck mit Canvas zeichnen
Hi Moritz,
eigentlich so:
Delphi-Quellcode:
oder analog:
h := r*cos(DegToRad(360/n));
Delphi-Quellcode:
Wichtig ist, dass du den Winkel in Radianten übergibst!
h := r*cos(2*Pi/n);
Greetz alcaeus |
Re: N-Eck mit Canvas zeichnen
Nur die Hälfte des Winkels, alcaeus!
cos(pi/n) = h/r => h = r * cos(pi/n). |
Re: N-Eck mit Canvas zeichnen
Zitat:
@Moritz: also so:
Delphi-Quellcode:
Greetz
h := r*cos(DegToRad(180/n));
alcaeus |
Re: N-Eck mit Canvas zeichnen
Leute, ihr seid genial! Danke :)
|
Re: N-Eck mit Canvas zeichnen
Zitat:
Zitat:
![]() |
Re: N-Eck mit Canvas zeichnen
Zitat:
Ich schau sie mir wahrscheinlich bei Gelegentheit mal an: Eine Frage stellt sich mir noch: Ich brauch den Flächeninhalt des n-ecks, dazu muss ich den flächeninhalt der n dreiecke multiplizieren, den ich auch berechnen könnte, wenn ich die länge der strecke in der skizze berechnen könnte, die teil des roten dreiecks ist, allerdings noch keinen Namen hat? (Ein Satz *g*) |
Re: N-Eck mit Canvas zeichnen
Öhm...hat sich soeben erledigt. :)
|
Re: N-Eck mit Canvas zeichnen
hallo
r und h hast du und es ist ein Rechtwinkliges-Dreieck, also kannst du das kleine stückchen mit dem satz von Pythagoras berechnen. MfG Luki |
Re: N-Eck mit Canvas zeichnen
ja, das ist mir 5 Sekunden nach dem Posten auch aufgefallen ^^
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:23 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