Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi OpenGL - Vektoren - Gleichungen (https://www.delphipraxis.net/86390-opengl-vektoren-gleichungen.html)

Bastler 13. Feb 2007 15:30


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

Oxmyx 13. Feb 2007 15:33

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.

Bastler 13. Feb 2007 19:41

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)

Oxmyx 14. Feb 2007 16:48

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.

Flare 14. Feb 2007 17:22

Re: OpenGL - Vektoren - Gleichungen
 
Darüber habe ich mir auch mal nen Kopf gemacht, hier meine Lösung:
Delphi-Quellcode:
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;
Das ist gerade das Beispiel für den Winkel zwischen 2 Vektoren, habe mir aber noch sehr viele mehr nützliche Funktionen selber zusammengeschrieben.

Hoffe du kannst was damit anfangen.


Flare

Bastler 14. Feb 2007 18:24

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:

Oxmyx 16. Feb 2007 14:16

Re: OpenGL - Vektoren - Gleichungen
 
Zitat:

Zitat von Bastler
@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!

Da würde ich dann auf geeignete Programme wie z.B. Maple oder Mathematica zurückgreifen. ;)

shmia 16. Feb 2007 15:00

Re: OpenGL - Vektoren - Gleichungen
 
Simple Vector Library Vielleicht ist das ja was für dich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:03 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