Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 21:05

Foren-Übersicht » Programmierung » Mathematik-Forum
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Apr 16, 2005 17:00 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich hab mal wieder ein mathe problem...

Ich habe 2 Punkte im raum (x, y, z) zwischen denen ich eine linie ziehe.
Nun möchte ich diese linie um X einheiten verlängern und gleichzeitig um einen beliebigen Wert (Alpha1 und Alpha2) abknicken lassen...

Also z.B. die linie um 5 einheiten verlängern und den neuen punkt um 20° auf der Y-Achse um die linie rotieren und um 40° auf der Z-Achse..

Versteht ihr was ich meine??? und... falls ja, weiß jemand wie das geht?? :)

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 16, 2005 17:30 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
1. vektor der vorhandenen linie berechnen(A.x-B.x,A.y-B.y,A.z-B.z wenn ich mich nicht irre)
2. vektor rotieren und skalieren
3. aus dem Vektor eine Strecke machen und nach B verschieben
4. Strecke zeichnen

so in etwa sollte es hinhauen. schade dass ich so schlecht direkt in code formulieren kann....und schade dass ich von vektoren keine ahnung habe :mrgreen:

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Apr 16, 2005 18:31 
Offline
DGL Member

Registriert: Mi Apr 13, 2005 16:06
Beiträge: 67
Wohnort: Fulda
Aya hat geschrieben:
Also z.B. die linie um 5 einheiten verlängern und den neuen punkt um 20° auf der Y-Achse um die linie rotieren und um 40° auf der Z-Achse..


Was bedeutet, auf der y-Achse/z-Achse um die Linie rotieren? Denn wenn du einen Punkt auf einer Linie um diese Linie rotierst, verändert er seine Position nicht. Oder meinst du einfach eine Rotation um eine der Koordinatenachsen?

Suchst du eine algebraische Lösung oder eine für OpenGL?


luketheduke hat geschrieben:
vektor der vorhandenen linie berechnen(A.x-B.x,A.y-B.y,A.z-B.z wenn ich mich nicht irre)


Nun, wenn du den Vektor von A nach B berechnen willst, stimmt es nicht ganz. Der wäre (B.x - A.x | B.y - A.y | B.z - A.z). Was du berechnet hast, ist der Vektor von B nach A, und ich vermute mal, dass du den nicht meintest. ;)

Robert


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 16, 2005 18:59 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Lukes Ansatz sollte richtig sein. (Auch wenn der Vektor verkehrtrum ist. Luke würde bestimmt argumentieren, dass man ihn ja mit glScale(-1,-1,-1) ausrichten soll :mrgreen:)

Das schone an der Geometrie im Raum ist, dass man Vektoren genauso rotieren und vergewaltwurschteln kann wie alle anderen Sachen auch.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 16, 2005 19:54 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
@robert s: hab ich nicht das hier geschrieben:

luketheduke hat geschrieben:
....und schade dass ich von vektoren keine ahnung habe :mrgreen:


@flash: ich hätte tatsächlich vorgeschlagen, den vektor zu invertieren, wenn B links von A ist. :twisted: allerdings fiel mir gerade noch rechtzeitig ein, dass das im dreidimensionalen raum ja absolot belanglos ist.

ps: deinem beitrag meine ich zu entnehmen, dass ich endlcih mal das "ich bin newb" aus meiner sig nehmen sollte :mrgreen:

EDIT: war grad zu perplex, um das überhaupt zu realisieren: das war ja richtig, was ich geschrieben hatte! zumindest ansatzweise!

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 16, 2005 20:13 
Offline
DGL Member

Registriert: Mi Apr 13, 2005 16:06
Beiträge: 67
Wohnort: Fulda
luketheduke hat geschrieben:
war grad zu perplex, um das überhaupt zu realisieren: das war ja richtig, was ich geschrieben hatte! zumindest ansatzweise!


Jep, durchaus!

Für die kleine Korrektur beim Vektor ist meine Perfektionistenseele verantwortlich zu machen, die manchmal aus mir herausbricht... :mrgreen:

Robert


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 17, 2005 11:04 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
Hä!

Zitat:
1. vektor der vorhandenen linie berechnen(A.x-B.x,A.y-B.y,A.z-B.z wenn ich mich nicht irre)
2. vektor rotieren und skalieren
3. aus dem Vektor eine Strecke machen und nach B verschieben
4. Strecke zeichnen


wollt ihr die geometry-rechnungen mit opengl lösen (klingt so)???

@Aya:

Wenn du mir noch mal genauer sagst, wie du dass mit der Rotation meinst

Zitat:
und den neuen punkt um 20° auf der Y-Achse um die linie rotieren und um 40° auf der Z-Achse..


, dann schreibe ich das gerne mal als lösung mit der Mike Lischke geometry.pas !

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 17, 2005 12:18 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
das mit dem rotieren entspricht dem abknicken. sprich, die verläng... ach ich mach ne skizze:

um den winkel x muss eben (in diesem beispiel wohl an der x-achse) geknickt werden; das bringt mit sich dass die linie BC rotiert werden muss.


Dateianhänge:
abknicken.JPG
abknicken.JPG [ 5.28 KiB | 7489-mal betrachtet ]

_________________
Bild

"User Error. Replace User and hit Continue."
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 17, 2005 17:58 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
OK:

Code:
  1. var
  2.   a,b,c,v1,v2:=TVector3e;
  3.   w: single;  //  winkel
  4.   f: single;  //  streckfaktor (strecke b,c = f * strecke a,b)
  5. begin
  6.   //  erzeugen der verlängerten Strecke
  7.   v1:=VectorScale(VectorSubtract(b,a),f);
  8.   // rotation der Strecke um die x-achse (dafür hat die geometry.pas leider keine funktion)
  9.   v2[1]:=v1[1]*cos(w)+v1[2]*sin(w);
  10.   v2[2]:=v1[2]*cos(w)-v1[1]*sin(w);
  11.   // ansetzen der rotierten strecke an b
  12.   c:=VectorAdd(b,v2);
  13. end;


Wenn du um die y oder z achse rotieren willst, wäre dass:

Code:
  1.   v2[0]:=v1[0]*cos(w)-v1[2]*sin(w);
  2.   v2[2]:=v1[2]*cos(w)+v1[0]*sin(w);


und

Code:
  1.   v2[1]:=v1[1]*cos(w)-v1[0]*sin(w);
  2.   v2[0]:=v1[0]*cos(w)+v1[1]*sin(w);


so, wenn du um einen beliebigen vektor rotieren willst müsste das so gehen:

Code:
  1.   v2:=VectorRotate(v1,achse,w);  //  achse ist auch ein vecktor :-)


p.s.: ich habe mit der geometry.pas von Lischke noch nicht gearbeitet (ich benutze meine eigene), aber so müsste das klappen!

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Foren-Übersicht » Programmierung » Mathematik-Forum


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.012s | 17 Queries | GZIP : On ]