![]() |
OpenGL - Vektoren - Gleichungen
Hallo;
Wer sich mit OpenGL auseinadersetzte kommt um Vektroen nicht herum, ist ja auch nicht weiter schlimm, nur bräuchte ich eine Prozedur, die mir Gleichungen löst, so wie z.B. ein CAS, da ich keine Lust habe erst nen Gaußschen Algorithmus zu Programmiren um mir eine Vektor ausrechen zu lassen, der z.b. in einem bestimmten Winkel zu einem anderen steht. Hat JEDI oder eine andere Komponente derartige mathematische Funktionen? MfG Bastler |
Re: OpenGL - Vektoren - Gleichungen
Sowas ist unnötig und unsinnig, wenn man den Ressourcenverbrauch eines solchen Algorithmus bedenkt.
Löse doch stattdessen deine Gleichung einfach allgemein, und rechne dir dann so deine benötigten Werte direkt aus, ohne Umformungen. |
Re: OpenGL - Vektoren - Gleichungen
Das is mir klar, ich habe auch nicht vor den Algorithmus selber zu Programmieren, sondern den fertig umgestellten nur ist die Sache dann immernoch, dass ich etwas wie y=ax^2+bx+c mal nach a und mal nach c auflösen muss (Ich weiß, das ich jetz kein Element aus der Vektorrechnung, nur denke ich das dei ein oder anderen mit einer allg. Parabelgleichung mehr anfangen können, also mit einem gaußschen Algorithmus)
|
Re: OpenGL - Vektoren - Gleichungen
Ich verstehe das Problem wirklich nicht. Ok, du hast deine Gleichung und willst nach a und c auflösen. Dann mach das doch! Du bekommst in diesem Fall dann:
c = y-ax^2-bx und a = -(-y+bx+c)/(x^2) heraus. Wozu willst du denn eine Gleichung jedes Mal von neuem lösen, wenn du sie auch ein Mal von Hand ausrechnen kannst, und dann direkt das Ergebnis hast? Dabei spielt es keine Rolle, ob du hier Skalare oder Vektoren oder was auch immer hast. Übrigens wäre ein CAS-Algorithmus tausend- bis milliardenfach langsamer als eine direkte Berechnung. |
Re: OpenGL - Vektoren - Gleichungen
Darüber habe ich mir auch mal nen Kopf gemacht, hier meine Lösung:
Delphi-Quellcode:
Das ist gerade das Beispiel für den Winkel zwischen 2 Vektoren, habe mir aber noch sehr viele mehr nützliche Funktionen selber zusammengeschrieben.
type
T3DVector = record x: double; y: double; z: double; end; function abs(vector: T3DVector): double; overload; begin Result := sqrt(sqr(vector.x) + sqr(vector.y) + sqr(vector.z)); end; function scalarprod(vector1: T3DVector; vector2: T3DVector): double; begin Result := vector1.x * vector2.x + vector1.y * vector2.y + vector1.z * vector2.z; end; function arc(vector1: T3DVector; vector2: T3DVector): double; var temp: double; begin temp := scalarprod(vector1, vector2)/(abs(vector1)*abs(vector2)); if IsZero(temp) then Result := RadToDeg(arccos(temp)) else Result := 0; end; Hoffe du kannst was damit anfangen. Flare |
Re: OpenGL - Vektoren - Gleichungen
@Oxmyx: das mit der Parabel war ein Beispiel, das ich es für 2 Variabeln noch jeweils per Hand auflösen kann, is mir klar, aber würdest du das bei 50 Gleichungen, die 50 Variabeln beschreiben auch noch tun? Ich nich!
@Flare: Danke ich werde schaun, inwiefern es mir hilft :thumb: |
Re: OpenGL - Vektoren - Gleichungen
Zitat:
|
Re: OpenGL - Vektoren - Gleichungen
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 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