Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Dreieck zeichnen? (https://www.delphipraxis.net/13012-dreieck-zeichnen.html)

Maximus 9. Dez 2003 13:50


Dreieck zeichnen?
 
Ich versuche ein Programm zu schreiben bei dem man die Länge einer belibigen Strecke (a,b oder c) eingeben kann, noch die größe von 2 beliebigen Winkel (alpa, beta, gamma) und dan soll das Programm ein Dreieck zeichnen!

Ich hätte es jetzt mit Canvas gemacht, doch jetzt ist das problem, wie kann man eine schräge linie zeichnen und wenn der Benutzer die Strecke c nimmt und winkel alpha und gamma?

Christian18 9. Dez 2003 14:07

Re: Dreieck zeichnen?
 
Hi,

Soweit ich weiß kann man ein Dreieck in Delphi nicht zeichnen oder irgendwie auf die Form bekommen! Naja egal! Ich weiß aber wie du ein Dreieck zeichnen kannst! Du nimmst einfach die Shapes die su unter der rubrik zusätzlich finden kannst. oder du zeichnest die ein dreieck in paint und fügst es anschlie0ßend in delpfi ein. (Image dass findest du auch unter zusätzlich)

Bye Bye

choose 9. Dez 2003 14:09

Re: Dreieck zeichnen?
 
Hallo Maximus,

reduziere das Problem mithilfe von trigonometrischen Funktionen auf die Problemstellung "Linie zwischen zwei Punkten zeichen".
Darüber hinaus sind die Bezeichnungen der Seiten und Winkel in einem Dreieck willkürlich, können also immer so getauscht werden, dass "die untere Seite" horizontal ist. Mit anderen Worten: Es gibt beliebig viele kongruente Dreiecke mit identischen Seitenlängen (=> bei gleichen Winkeln).

Gandalfus 9. Dez 2003 14:16

Re: Dreieck zeichnen?
 
Zitat:

Zitat von Christian18
Hi,

Soweit ich weiß kann man ein Dreieck in Delphi nicht zeichnen oder irgendwie auf die Form bekommen! Naja egal! Ich weiß aber wie du ein Dreieck zeichnen kannst! Du nimmst einfach die Shapes die su unter der rubrik zusätzlich finden kannst. oder du zeichnest die ein dreieck in paint und fügst es anschlie0ßend in delpfi ein. (Image dass findest du auch unter zusätzlich)

Bye Bye

Hmm das ist FALSCH. Ich sag nur mal moveto() und lineto.(Tipp: Canvas + F1 )

zu dem Problem.
Man brauch ja die koordinaten von A,B,C um das Ding zu zeichnen.

1 Vekor ist bekannt und der winkel zwischen den beiden Vektoren dürfte also kein Problem sein den fehlenden Vektor auszurechen.
cos alpha = a o b/|a|*|b| (a und b sind Vektoren)wenn ich mich richtig erinnere.(Edite ka ob man das umformen kann)
Dann noch die Geraden gleichungen aufstellen und gleichsetzen und man hat den Punkt C.

Alternativ stellt du 2 Gleichungen auf: y=mx+b und dann wieder gleichsetzen usw.

Robertlu 26. Feb 2004 08:26

Re: Dreieck zeichnen?
 
Hallo Maximus,

schräge linien mit canvas zu zeichnen ist sehr einfach.

Benutze einfach die befehle Moveto();
und Lineto();

Dann kannst du vom Punkt MOuveto(); bis zum Punkt(Lineto(); eine Linie zeichnen;

Wenn man bei deinem Programm nur eine Läng eingeben soll, dann musst du einen Startwert definieren und dann die läng mit Lineto(), zeichnen;

DAs mit den Winkeln istz auch ganz einfach schau einfach in dein Tafelwerk(Schule) und benutze die Winkelfunktionen


mfg Rob

Matze 26. Feb 2004 08:29

Re: Dreieck zeichnen?
 
Das geht aber auch nur, wenn es ein rechtwinkliges Dreieck ist, oder? :gruebel:

Robertlu 26. Feb 2004 08:34

Re: Dreieck zeichnen?
 
Nööö

da gibt es den Sinussatz oder den Cosinus satz die berechnen strecken und winkel in allgemeinen
dreicken:

(a/b)=sin(alpha/sin(beta)

das stellt man dann nach einem Winkel oder einer strecke um das müsste funktionieren.

Robertlu 26. Feb 2004 08:36

Re: Dreieck zeichnen?
 
wenn man nur einen winkel aber zwei strecken hat nimmt man den Kosinussatz:

a^2=b^2+c^2 -2*b*c cos (alpha)

mfg Rob

Tonic1024 26. Feb 2004 09:10

Re: Dreieck zeichnen?
 
Hi...

Ist diese ganze LineTo und MoveTo geschichte denn nicht zu kompliziert? Sollte es nicht einfacher sein ein Objekt als Polygon zu erzeugen? Natürlich müssen die Punkte auch berechnet werden - klar.

Und ganz nebenbei: Torry hat - wer hätte dasssss gedacht - Kompos dafür. Vielleicht ist da was passendes, was die Winkel angeht, dabei?

Matze 26. Feb 2004 09:12

Re: Dreieck zeichnen?
 
:oops: Kosinussatz und Sinussatz - lange her

Seniman 26. Feb 2004 20:35

Re: Dreieck zeichnen?
 
Hallo Maximus,

du solltest dir ersteinmal im klaren darüber sein, das die Konstruktion des Dreiecks je nachdem, welche Seiten und Winkel gegeben sind. Wenn die drei Seitenlängen gegeben sind, ist es komplett anders, als wenn eine Seite und zwei Winkel gegeben sind.
Ich würde vorschlagen, dass du mit den oben zitierten Sätzen (Kosinussatz und Sinussatz) von den gegebenen Teile zwei Seiten (z.B. b und c) und den eingeschlossenen Winkel berechnes (Alpha). Damit lässt sich das dann recht einfach zeichnen.
Angenommen Punkt A hat die Koordinaten (x/y), dann hat Punkt B die Koordinaten (x+c,y), wobei c die Kantenlänge c ist. Die Koordinaten von Punkt C sind (x+b*cos(Alpha),y+b*sin(Alpha)).
Ich hoffe damit kannst du was anfangen. Beachte bei den Funktionen sin und cos, dass du den Winkel in Bogenmaß angeben musst!!!

Grüße
Seniman

bundy 27. Feb 2004 00:44

Re: Dreieck zeichnen?
 
Bei einem Winkel:

sin(Alpha)= Gegenkathete / Hypothenuse
cos(Alpha)= Ankathete / Hypothenuse
Tan(Alpha)= Gegenkathete / Ankathete

alanblack 27. Feb 2004 01:35

Re: Dreieck zeichnen?
 
hoi Maximus,

wenn du dieses Project fertig erstellt hast, könntest du es hier online stellen

iz zur zeit genau das was ich brauche :stupid:

Viele Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:49 Uhr.

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