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

Aktuelle Zeit: Fr Jul 18, 2025 00:41

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



Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Math-Libary
BeitragVerfasst: Mo Mär 13, 2006 19:14 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Ich bin eben trotz der vielen nebenher laufenden Projekte daran eine Mathematik-Libary für .NET( Später möglicherweisse auch für Win32( Delphi, C++ ) zu schreiben, die bei den anderen Projekten erheblich die Arbeit erleichtern soll( Komplett alle relevanten .NET Typen, mit allerhand möglichen Operator-Overloads; Paar Tausend Zeilen Code ).

Im Moment sind drinnen:
- Byte
- Int16
- Int32
- Int64
- Single
- Double
- Boolean

Das ganze von 2Dim zu 4 Dim.
Zwar ist es Fraglich ob jeder dieser Typen verwendet wird,

Jetzt die Frage, zu der Typen-conversion von Vector zu Vector:
Was haltet ihr für besser, implicit oder explicit??

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 13, 2006 19:52 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 26, 2002 22:12
Beiträge: 259
Wohnort: Dresden
Implizierte Typecasts führen meiner Meinung nach eher zu Verwirrung (Wird z.B. bei einer Typenumwandlung von Vector3* auf Vector4* nun die neue Komponente mit 1 oder 0 gefüllt?) Dasselbe Problem besteht aber auch bei expliziten Typecasts.
Du kannst ja z.B. statische Funktionen zur Umwandlung zur Verfügung stellen. Die sind dann auch eindeutig. Wirklich häufig benötigt man solche Umwandlungen sowieso nicht.
Im Endeffekt ist es aber Geschmackssache.

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 14, 2006 09:31 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Magellan hat geschrieben:
Implizierte Typecasts führen meiner Meinung nach eher zu Verwirrung (Wird z.B. bei einer Typenumwandlung von Vector3* auf Vector4* nun die neue Komponente mit 1 oder 0 gefüllt?) Dasselbe Problem besteht aber auch bei expliziten Typecasts.
Du kannst ja z.B. statische Funktionen zur Umwandlung zur Verfügung stellen. Die sind dann auch eindeutig. Wirklich häufig benötigt man solche Umwandlungen sowieso nicht.
Im Endeffekt ist es aber Geschmackssache.



Die überlegung mit der übersicht hatte ich auch. Ich werde wohl die Typcasts sowie die Statischen Funktionen zu Verfügung stellen.

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 14, 2006 18:11 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Ich hoffe ihr habt Zeit die erste Version zu Testen, b.z.w sie euch etwas anzusehen!

Was fehlt ist:
- Typconversion von z.b. "Single" zu "Double", die Conversion von Dimension zu Dimension ist bereits enthalten
- Etwas anderes wie Vektoren
- Bisher wurden nur bei bools die zweite Möglichkeit der Typenconversion eingefügt( ToVector2b, ToVector3b,...)


Was mich besonderst interessiert, ist was noch wichtig ist( z.b. eine Normalize Funktion?!?! ), zu solchen Sachen sollte am besten noch gleich die Formel mitgeliefert werden!


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 15, 2006 20:14 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 26, 2002 22:12
Beiträge: 259
Wohnort: Dresden
Aus meiner Sicht fehlen noch die Funktionen, die die ganze Klasse überhaupt sinnvoll macht ;). Bisher sehen die Klassen so aus als wären sie nicht zum Rechnen gedacht. Was ist mit Vektorkreuzprodukt, Skalarprodukt, Multiplikation mit einem Skalar usw? Oder habe ich die übersehen?.
In meiner eigenen Matheunit nutze ich zudem die Möglichkeit Operatoren zu überladen. Das macht den Code wesentlich übersichtlicher und vor allem bei Vektoren und Matrizen wirklich Sinn.

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 16, 2006 09:54 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Magellan hat geschrieben:
Aus meiner Sicht fehlen noch die Funktionen, die die ganze Klasse überhaupt sinnvoll macht ;). Bisher sehen die Klassen so aus als wären sie nicht zum Rechnen gedacht. Was ist mit Vektorkreuzprodukt, Skalarprodukt, Multiplikation mit einem Skalar usw? Oder habe ich die übersehen?.
In meiner eigenen Matheunit nutze ich zudem die Möglichkeit Operatoren zu überladen. Das macht den Code wesentlich übersichtlicher und vor allem bei Vektoren und Matrizen wirklich Sinn.


Sind eigentlich garkeine Klassen :D
Endlich mal ein Hilfreicher Kommentar!
Operatorenübberladungen sind für jeden Typ(!!!) soviel drin wie möglich.
Vektorkreuzprodukt, Skalarprodukt, Multiplikation mit einem Skalar werde ich wohl noch einbauen als Funktion.
Ehrlich gesagt expandiert das ganze atm Exp. ein einziger Vektor ist atm 300 - 400 Zeilen lang.

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 16, 2006 16:02 
Offline
DGL Member

Registriert: Fr Dez 19, 2003 14:27
Beiträge: 107
Wohnort: Indianapolis, USA
Ich wuerde mir ja die Arbeit sparen eine Vektor Klasse fuer x moegliche Typen zu schreiben und statt dessen eine Generic Vektor Klasse bauen :-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 16, 2006 19:14 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Tokter hat geschrieben:
Ich wuerde mir ja die Arbeit sparen eine Vektor Klasse fuer x moegliche Typen zu schreiben und statt dessen eine Generic Vektor Klasse bauen :-)


Da kannst du weder Implicit / Explicit Deklerationen reinschmeissen, noch kannst du Operatoren überladen. Als dritten Punkt ist es mehr schreibarbeit wenn du sie benutzt. :wink:

Generic Klassen gibt es trotzdem, diese sind allerdings in der Version nicht drinnen, da ich an die Armen Delphianer gedacht habe!

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 16, 2006 19:18 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
"Operator Overloading with Generics":

http://www.codeproject.com/csharp/genericoperators.asp


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mär 18, 2006 11:12 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
LarsMiddendorf hat geschrieben:
"Operator Overloading with Generics":

http://www.codeproject.com/csharp/genericoperators.asp


Man kann ja nicht alles wissen :wink:

Allerdings stellt sich bei mir die Frage wie weit das noch richtig Performant ist, und daher für 3D Anwendungen verwendbar.
Womit wir allerdings wieder bei dem Punkt "schreibarbeit" wären.


Aber die Diskussion ist eigentlich nicht Sinnvoll, immerhin habe ich ja nur die Schreibarbeit. :D

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mär 18, 2006 19:32 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Ich möchte an dieser Stelle anmerken, dass ich es sehr gut finde, dass die Anzahl der :!: aus deinen Posts merklich zurückgeht ;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 19, 2006 11:44 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 17, 2005 13:19
Beiträge: 98
Wohnort: Jahnsdorf
Wenn Du schon so eine Vielzahl an Typen benutzt, wäre auch zu überlegen, den Extended-Typ anzubieten (falls .NET zu diesem Wunderwerk der Technik überhaupt fähig ist).

Operator-Überladung sollte eigentlich keinen großen Performance-Nachteil liefern, genauso wenig wie implizite Typ-Konvertierung, wenn diese nicht auf Variant-Basis geschieht ...

Soviel aber nur am Rande; eine Nutzung einer .NET-Math-Lib steht bei mir außer Diskussion, da ich native code und dabei auch bleiben werde ...

_________________
Administrator of Project Omorphia
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 20, 2006 09:27 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Frase hat geschrieben:
Ich möchte an dieser Stelle anmerken, dass ich es sehr gut finde, dass die Anzahl der :!: aus deinen Posts merklich zurückgeht ;)


Das liegt daran das ich inzwischen es so oft gehört habe, das ich mir meinen Post extra durchlese und gucke das keine :!: drin sind :D



Zu BenBE:
Ich weiss es nicht, aber die Methode von Lars sieht auf den ersten Blick so aus als wäre sie nicht für 3D geeignet.

Das du kein .NET benutzt kann ich zwar nicht verstehen( Vielleicht liegt das einfach daran das sich die Leute damit nicht genug beschäftigen ), aber dank dem Reflector lässt sich aus dem Code zimlich schnell Delphi Code machen.
Dann müsste sich nur noch jemand bereit erklären das ganze für Native ebene umzusetzen, sprich die .Net Befehle rausschmeissen und durch ( IMHO noch nicht vorhandene ) Native Befehle ersetzen.

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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.009s | 14 Queries | GZIP : On ]