Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Rattockel
Anmeldungsdatum: 20.11.2005 Beiträge: 2
|
Verfasst am: 24.11.2005, 16:23 Titel: Winkelberechnung |
|
|
Moin
ich mache gerade ein 3d progg. aber mein mathematisches wissen ist noch nicht ganz so gut. also ich muss einen winkel berechnen. ich habe 3 punkte (x,y) jetzt brauche ich die winkel zu den 3 punkten
MFG Rattockel |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 24.11.2005, 18:20 Titel: |
|
|
was für einen winkel? Du weiß wohl nicht wie viele winkel man aus 3 punkten erstellen kann..  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 24.11.2005, 23:08 Titel: |
|
|
Im Studium lernte ich auch noch die entsprechenden Winkelsätze in der linearen Algebra. Muss gleich einmal meine Formelsammlung hervorkramen...
Also folgendes dazu: Bezeichnen wir Deine drei Punkte als M, A und B. Im dreidimensionalen Raum haben wir zwei Vektoren a und b (von M nach A bzw. B), welche untereinander den Winkel phi haben.
Dann gilt
a * b = ABS(a) * ABS(b) * COS(phi)
wobei a * b das sog. Skalarprodukt ist. Wie man das berechnet, ist unter
http://beilagen.dreael.ch/QB/3DWINKEL.BAS
ersichtlich - eine kleine Vektorarithmetik-SUB/FUNCTION-Sammlung gehört auch dazu :-) _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Triton

Anmeldungsdatum: 10.09.2004 Beiträge: 155 Wohnort: Berlin
|
Verfasst am: 25.11.2005, 16:13 Titel: |
|
|
Wenn du drei Punkte hast, kannst du zwischen je 2 Punkten eine Gerade bilden. Wenn du dann 3 Geradengleichungen hast, kannst du zwischen je 2 den Schnittwinkel ausrechnen.
Die geraden heißen g,h,i
wobei m1,m2 und m3 die jeweiligen Anstiege sind.
Dann finden wir den ersten Schnittwinkel über
Code: |
cos w(g;h) = |vektor-a * vektor-b| / (|vektor-a|*|vektor-b|)
|
Hier kommt das Skalarprodukt zweier Vektoren zur Anwendung.
Die Vektoren seien vektor-a=(ax|ay) und vektor-b=(bx|by).
Das Skalarprodukt lautet dann einfach axbx+ayby.
Bei ax,ay usw kann man die jeweiligen x und y-Werte der gegebenen Punkte einsetzen. vektor-a ist dann der Richtungsvektor (mit vernachlässigtem Parameter) der die Gerade g beschreibt.
Wenn du von Vekoren keine Ahnung hast, gehts auch so:
Code: |
cos w(g;h) = |1+m1*m2| / (sqr(1+m1²) * sqr(1+m2²))
|
Der Betrag im Zähler ist wichtig, da wir den Schnittwinkel von Geraden - und nicht von Vektoren - ermitteln wollen. Der Schnittw. von Vektoren kann über 180° groß sein (da Vektoren eine Richtung haben), der von Geraden kann nur kleiner als 180° sein. _________________ Coding: silizium-net.de | Portfolio: Triton.ch.vu |
|
Nach oben |
|
 |
|