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

Aktuelle Zeit: Do Jul 17, 2025 09:38

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 01, 2004 00:33 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Nö...du brauchst den Winkel zwischen z.B. Y-Achse und der Geraden P3P4. Den entgegengesetzten Winkel benutzt du dann um deine Rot.Matrix zu bauen. Das bedeutet dann im Kalrtext die Matrex dreht deine Welt so, dass die Gerade P3P4 = der Y-Achse ist.
Anschließent wirfst du P1 und P2 nacheinander durch die Matrix und erhälst ihre gedrehten Bilder. Bei denen brauchst du nur noch gucken ob die x Koordinate ein Vorzeichen haben bzw. net.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 01, 2004 09:52 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Also ich brauchte dazu keinen Winkel, zumindest nicht als Wert.

Hier mal mein Quelltext:
Code:
  1.  
  2. //Dieser Code darf unter den Bedinugen der MPL verwendet werden.
  3. //(Zu finden etwa unter http://www.mozilla.org/MPL/MPL-1.1.html)
  4. type
  5.   TRealPoint=record X,Y:Real; end;
  6.   TWegChecker=class
  7.   protected
  8.     XAchse:TRealPoint;
  9.     YAchse:TRealPoint;
  10.     PosVektor:TRealPoint;
  11.     AbstandAB:Real;
  12.   public
  13.     procedure SetData(const A,B:TRealPoint);
  14.     function AufunterschiedlicherSeite(const A1,B1:TRealPoint;const A2,B2:TRealPoint):Boolean;
  15.     function PunktUmrechnen(P:TRealPoint):TRealPoint;
  16.   end;
  17.  
  18. implementation
  19.  
  20. procedure TWegChecker.SetData(const A,B:TRealPoint);
  21. begin
  22.     //XAchse zeigt von A nach B
  23.     XAchse.X := B.X-A.X;
  24.     XAchse.Y := B.Y-A.Y;
  25.  
  26.     //Länge von X und Y-Achse
  27.     AbstandAB := Sqrt(XAchse.X*XAchse.X + XAchse.Y*XAchse.Y);
  28.  
  29.     //XAchse in Einheits Vektor verwandeln.
  30.     XAchse.X := XAchse.X/AbstandAB;
  31.     XAchse.Y := XAchse.Y/AbstandAB;
  32.  
  33.     //Die Achse von dem Koordianten System welches entgegenwirkt.
  34.     XAchse.Y := -XAchse.Y;//XAchse wird an der richtigen XAchse gespiegelt.
  35.  
  36.     //Einen senkrechten Vektor zur X-Achse als Y-Achse verwenden.
  37.     YAchse.X := -XAchse.Y;
  38.     YAchse.Y := XAchse.X;
  39.  
  40.     //A als Koordianten Ursprung
  41.     PosVektor := A;
  42. end;
  43.  
  44. function TWegChecker.PunktUmrechnen(P:TRealPoint):TRealPoint;
  45. begin
  46.      // a) Neuer Koordianten Ursprung
  47.     P.X := P.X-PosVektor.X;;
  48.     P.Y := P.Y-PosVektor.Y;;
  49.     // b) Koordianten auf das neue KoordiantenSystem umstellen.
  50.     //    Vektoren addieren: KX * XAchse (+) KY*YAchse
  51.     result.X := P.X*XAchse.X + P.Y*YAchse.X;//Erhaltene X Werte zusammenzählen
  52.     result.Y := P.X*XAchse.Y + P.Y*YAchse.Y;//Erhaltene Y Werte zusammenzählen
  53. end;
  54.  
  55. function TWegChecker.AufunterschiedlicherSeite(const A1,B1:TRealPoint;const A2,B2:TRealPoint):Boolean;
  56. var
  57.   NeuA,NeuB:TRealPoint;
  58. begin
  59.   SetData(A1,B1);//Koordinaten System festlegen
  60.   NeuA := PunktUmrechnen(A2);//Position von A2 im neuen Koordinaten System
  61.   NeuB := PunktUmrechnen(B2);//Position von B2 im neuen Koordinaten System
  62.   result := (NeuA.y < 0) xor (NeuB.y < 0); //Unterschiedliche Vorzeichen?
  63. end;
  64.  

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » OpenGL


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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.014s | 15 Queries | GZIP : On ]