[A] Grafik-Programmierung - Nötige Mathematik



  • Anscheinend wurde am Artikel weitergearbeitet.

    Dummie: Diesen Satz würde ich auch auf keinen Fall stehen lassen, denn die Addition wird natürlich auch gebraucht. Zum Beispiel ist der Mittelpunkt zwischen A und B durch (A + 😎 / 2 gegeben.

    Walnut_Burl: Was ist für dich der Unterschied zwischen einem Punkt und einem Vektor? Du springst mit den Bedeutungen ein wenig, z. B. wenn du anfängst, zwei Punkte zu subtrahieren. Was unterscheidet einen Punkt dann von einem Vektor?

    In DirectX gebraucht man meist den D3DXVECTOR4 Vektortyp, da man so zwischen Punkten und Vektoren unterscheiden kann.

    Ich hab noch nie mit DX gearbeitet, behaupte aber einfach mal, dass man diesen Typen genau dann benutzt, wenn man ne vierte Dimension braucht, und nicht, um Vektoren von Punkten künstlich unterscheiden zu können.



  • Michael E. schrieb:

    Anscheinend wurde am Artikel weitergearbeitet.

    Genau 😃 Ich hatte einige Tage leider keine Zeit mich um diesen zu kümmern, doch jetzt ist die Arbeit wieder in ihrem gewohnten Fluss.

    Michael E. schrieb:

    Dummie: Diesen Satz würde ich auch auf keinen Fall stehen lassen, denn die Addition wird natürlich auch gebraucht. Zum Beispiel ist der Mittelpunkt zwischen A und B durch (A + 😎 / 2 gegeben.

    Stimmt. Es gibt eine Punktaddition, wobei ein Durchschnitt ausgerechnet wird. Da dies aber nicht relevant für Graphische Programmierung ist, werde ich darauf nicht eingehen und die These, dass es keine Addition gibt stehen lassen. Eine Addition sähe wie folgt aus:

    Michael E. schrieb:

    Walnut_Burl: Was ist für dich der Unterschied zwischen einem Punkt und einem Vektor? Du springst mit den Bedeutungen ein wenig, z. B. wenn du anfängst, zwei Punkte zu subtrahieren. Was unterscheidet einen Punkt dann von einem Vektor?

    2 Punkte subtrahiert ergeben einen Vektoren der zwischen diesen beiden Punkten liegt. 2 Vektoren hingegen ergeben einen neuen Vektor, der nur die Länge dieser Strecke hat, aber vom Punkt "Origin" ausgeht, und parallel zu diesem Scheinvektor zwischen den beiden "Köpfen" der Vektoren ist, wenn sie subtrahiert werden.

    Michael E. schrieb:

    In DirectX gebraucht man meist den D3DXVECTOR4 Vektortyp, da man so zwischen Punkten und Vektoren unterscheiden kann.

    Ich hab noch nie mit DX gearbeitet, behaupte aber einfach mal, dass man diesen Typen genau dann benutzt, wenn man ne vierte Dimension braucht, und nicht, um Vektoren von Punkten künstlich unterscheiden zu können.

    Hab mich verschrieben. Richtiger Ansatz ist im obigen Haupttext...

    Wie gesagt, dies ist eine eher fortgeschrittene Technik, von daher weiß ich nicht ob ich sie in diesem ersten Artikel schon mit einbringen soll, oder aber eher noch einen 2., später erscheinenden, rausbringen soll.

    Ich hoffe, dass ich nun alle Fragen beantwortet habe!



  • Geht es nur mir so, oder ist der Titel "Grafische Programmierung" etwas irreführend? Unter grafischer Programmierung verstehe ich die Programmierung mittels einer grafischen Programmiersprache (Simulink, Laview, etc.) und nicht die Programmierung von grafischer Darstellung.

    PS: Den Artikel hab ich (sorry) nicht gelesen, ich wurde ja schliesslich vom Titel irregeführt 😉



  • Tim schrieb:

    Geht es nur mir so, oder ist der Titel "Grafische Programmierung" etwas irreführend? Unter grafischer Programmierung verstehe ich die Programmierung mittels einer grafischen Programmiersprache (Simulink, Laview, etc.) und nicht die Programmierung von grafischer Darstellung.

    PS: Den Artikel hab ich (sorry) nicht gelesen, ich wurde ja schliesslich vom Titel irregeführt 😉

    Ich finde den Namen so eigentlich ganz passend..

    Welchen würdest du denn, nachdem du den Artikel gelesen hast ;), vorschlagen?



  • Walnut_Burl schrieb:

    Stimmt. Es gibt eine Punktaddition, wobei ein Durchschnitt ausgerechnet wird. Da dies aber nicht relevant für Graphische Programmierung ist, werde ich darauf nicht eingehen und die These, dass es keine Addition gibt stehen lassen.

    In Anbetracht der Tatsache, dass du auf die formal korrekte Definition eines Vektors von Wikipedia verweist, gehe ich mal davon aus, dass du weißt, was ein Vektorraum ist. In einem solchen ist aber die Addition eine grundlegende Operation, sodass du nicht einfach behaupten kannst, dass es sie nicht gibt.

    [Edit: Das setzt voraus, dass ich mit deiner Unterscheidung von Punkten und Vektoren nicht einverstanden bin. Einen Punkt würde ich über seinen Abstand zum Ursprung definieren, den ich durch einen Vektor beschreiben kann. Deshalb sind deine Rechenoperationen auf Punkten in meinen Augen Vektoroperationen.]

    2 Punkte subtrahiert ergeben einen Vektoren der zwischen diesen beiden Punkten liegt. 2 Vektoren hingegen ergeben einen neuen Vektor, der nur die Länge dieser Strecke hat, aber vom Punkt "Origin" ausgeht, und parallel zu diesem Scheinvektor zwischen den beiden "Köpfen" der Vektoren ist, wenn sie subtrahiert werden.

    Wie ist denn die Subtraktion zweier Punkte definiert?

    Michael E. schrieb:

    Ich hab noch nie mit DX gearbeitet, behaupte aber einfach mal, dass man diesen Typen genau dann benutzt, wenn man ne vierte Dimension braucht, und nicht, um Vektoren von Punkten künstlich unterscheiden zu können.

    Hab mich verschrieben. Richtiger Ansatz ist im obigen Haupttext...

    Da steht immer noch dasselbe...



  • Walnut_Burl schrieb:

    Welchen würdest du denn, nachdem du den Artikel gelesen hast ;), vorschlagen?

    Gute Frage. "Grafik-Programmierung"?

    PS: Soll jetzt nicht als vernichtende Kritik gesehen werden, ich habe es nur falsch aufgefasst (was wohl auch an meinem Umfeld liegt). Wenn es nur mir so geht ist alles in Butter 🙂



  • Michael E. schrieb:

    Ich hab noch nie mit DX gearbeitet, behaupte aber einfach mal, dass man diesen Typen genau dann benutzt, wenn man ne vierte Dimension braucht, und nicht, um Vektoren von Punkten künstlich unterscheiden zu können.

    Hab mich verschrieben. Richtiger Ansatz ist im obigen Haupttext...

    Da steht immer noch dasselbe...[/quote]
    Wurde gerade noch mal verbessert. Mein System ist abgestürzt, deshalb konnte ich es nicht mehr absenden. Nun sollte aber eigentlich das richtige dort stehen.

    Michael E. schrieb:

    Darauf wird im neuen Teil noch einmal gesondert drauf eingegangen.

    Michael E. schrieb:

    In Anbetracht der Tatsache, dass du auf die formal korrekte Definition eines Vektors von Wikipedia verweist, gehe ich mal davon aus, dass du weißt, was ein Vektorraum ist. In einem solchen ist aber die Addition eine grundlegende Operation, sodass du nicht einfach behaupten kannst, dass es sie nicht gibt.

    Darauf gehe ich ja schon im Punkt 1.2 ein, wo es um die Mathematik von Vektoren geht. Es gibt nur keine Addition von Punkten, wozu ich auch am Ende von Punkt 2.1 eine Grafik eingestellt habe, die dies noch einmal verdeutlichen soll.

    PS: Vektorraum musste ich tatsächlich erst googlen, da wir das in der Schule noch nicht durchgenommen haben (besuche die 9. Klasse und bin 14) 😃

    Michael E. schrieb:

    [Edit: Das setzt voraus, dass ich mit deiner Unterscheidung von Punkten und Vektoren nicht einverstanden bin. Einen Punkt würde ich über seinen Abstand zum Ursprung definieren, den ich durch einen Vektor beschreiben kann. Deshalb sind deine Rechenoperationen auf Punkten in meinen Augen Vektoroperationen.]

    Natürlich kann man Punkte auch so definieren, wobei, laut dieser Definition, Punkte nur Vektoren sind. Dies ist aber falsch. Im Endeffekt sind Punkte die "Köpfe" von Vektoren, doch der restliche Vektor hat nichts mehr mit eben diesen zu tun. Denn: Punkte geben ja keine Kräfte oder ähnliches an, sondern nur Richtungen, in die dann zum Beispiel die virtuelle Kamera blickt.

    Tim schrieb:

    Gute Frage. "Grafik-Programmierung"?

    Einverstanden :D. Vielleicht dann doch Grafik-Programmierung - Nötige Mathematik?

    Tim schrieb:

    PS: Soll jetzt nicht als vernichtende Kritik gesehen werden

    Wurd nicht so aufgenommen. 🙂



  • Walnut_Burl schrieb:

    Natürlich kann man Punkte auch so definieren, wobei, laut dieser Definition, Punkte nur Vektoren sind. Dies ist aber falsch. Im Endeffekt sind Punkte die "Köpfe" von Vektoren, doch der restliche Vektor hat nichts mehr mit eben diesen zu tun. Denn: Punkte geben ja keine Kräfte oder ähnliches an, sondern nur Richtungen, in die dann zum Beispiel die virtuelle Kamera blickt.

    Wieso eignen sich Punkte denn semantisch besser als Vektoren, um eine Richtung auszudrücken?



  • Michael E. schrieb:

    Walnut_Burl schrieb:

    Natürlich kann man Punkte auch so definieren, wobei, laut dieser Definition, Punkte nur Vektoren sind. Dies ist aber falsch. Im Endeffekt sind Punkte die "Köpfe" von Vektoren, doch der restliche Vektor hat nichts mehr mit eben diesen zu tun. Denn: Punkte geben ja keine Kräfte oder ähnliches an, sondern nur Richtungen, in die dann zum Beispiel die virtuelle Kamera blickt.

    Wieso eignen sich Punkte denn semantisch besser als Vektoren, um eine Richtung auszudrücken?

    Da man um eine Richtung mit Punkte auszudrücken sich um die Länge des Vektors keine Sorgen machen muss, wenn man einen Punkt gebraucht. Dies ist eigentlich nur ein Grund der Effizienz, wobei man hier normalerweise auch normierte Vektoren gebrauchen kann.
    Die virtuelle Kamera wird wie eine Pyramide dargestellt in der der Sichtbereich dieser liegt. Befinden sich die Objekte außerhalb dieser Pyramide sind sie entweder nicht mehr im Sichtbereich oder aber zu weit weg. Die "Grundfläche" der Pyramide wird hier mit 4 Punkten angegeben (wobei dies im Endeffekt noch vereinfacht wird).
    Punkte werden außerdem dafür gebraucht die eigentliche Position der Kamera darzustellen. Da dies mit einem Vektor unsinnig wäre liegt ja auf der Hand.



  • Wenn du die Spaltenvektoren als Zeilen schreibst, dann solltest du angeben, dass die transponiert sind (üblicherweise macht man das so (a,b)T(a, b)^T). Damit man die Vektoren nicht mit Kovektoren verwechselt.

    Man verwendet 4D Vektoren und 4x4 Transformationsmatrizen, weil man dann Translation als Matrix darstellen kann. Die Vektoren sind dann aber nicht aus dem |R^4. Es handelt sich nur um eine Einbettung des |R^3. Aber ich kenne die mathematischen Details auch nicht genau.

    Michael E. schrieb:

    Vektoren representieren Punkte in Koordinatensystemen

    Naja, eher nicht. Hier könntest du IMHO besser von Pfeilen mit Richtungen und Längen reden. Wenn man einen solchen Pfeil vom Ursprung aus zeichnet, kommt man dann auf die Punkte.

    Naja, aber auch das sind ja nur Spezialformen von Vektoren. Das Zitat aus dem Wikipediaartikel spricht es ja schon an.



  • Der ganze Artikel ist ein Spezialfall 🤡 Aber hier gehts ja gerade um den Spezialfall R^2 bzw. R^3 mit allen Standardsachen nur für die Grafikprogrammierung.



  • rüdiger schrieb:

    Man verwendet 4D Vektoren und 4x4 Transformationsmatrizen, weil man dann Translation als Matrix darstellen kann.

    Stimmt genau 😉 Natürlich benutzt man 4D Vektoren auch um Verwechslungen zwischen Vektoren und Punkten (wie auch schon im Artikel genannt) auszuschließen.

    rüdiger schrieb:

    Naja, aber auch das sind ja nur Spezialformen von Vektoren. Das Zitat aus dem Wikipediaartikel spricht es ja schon an.

    Deshalb hatte ich dieses Zitat auch in den Artikel eingebaut und das selbe ein zweites Mal aufzunehmen fand ich etwas übertrieben, so dass ich selber nur eine (verbesserte) kurze Definierung angab.

    rüdiger schrieb:

    Wenn du die Spaltenvektoren als Zeilen schreibst, dann solltest du angeben, dass die transponiert sind (üblicherweise macht man das so [latex](a, b)^T). Damit man die Vektoren nicht mit Kovektoren verwechselt.

    Um ehrlich zu sein, weiß ich zur Zeit nicht, was du damit ausdrücken willst, da wir dies noch nie durchgenommen haben und ich das Wissen hauptsächlich aus Fachbüchern habe.
    Zusätzlich finde ich, dass dies etwas zu sehr in die Materie von Vektoren geht, da es für die Grafik-Programmierung nicht relevant ist.

    Michael E. schrieb:

    Aber hier gehts ja gerade um den Spezialfall R^2 bzw. R^3 mit allen Standardsachen nur für die Grafikprogrammierung.

    Jo das stimmt. Die verwendeten R^4 Vektoren geben ja nur an um welche Art (Punkt, Pfeil) es sich handelt.

    Michael E. schrieb:

    Der ganze Artikel ist ein Spezialfall

    Ist dies negativ mir oder dem Artikel gegenüber?



  • Walnut_Burl schrieb:

    Michael E. schrieb:

    Der ganze Artikel ist ein Spezialfall

    Ist dies negativ mir oder dem Artikel gegenüber?

    Weder noch 🤡

    In einem solchen Artikel wäre es nicht angebracht und vom Umfang her auch überhaupt nicht machbar, alle verwendeten Begriffe (Vektorräume, Skalarprodukte etc.) in den allgemeinen Versionen einzuführen, sondern du beschränkst dich sinnvollerweise auf die Bedeutungen, die du für die Grafikprogrammierung benötigst. Das Zitat richtet sich eher an rüdiger, weil ich nicht weiß, wieso er gerade bei Vektoren eine (in diesem Zusammenhang recht nutzlose) allgemeine Definition haben will und bei den anderen Sachen nicht.



  • Michael E. schrieb:

    Walnut_Burl schrieb:

    Michael E. schrieb:

    Der ganze Artikel ist ein Spezialfall

    Ist dies negativ mir oder dem Artikel gegenüber?

    Weder noch 🤡

    In einem solchen Artikel wäre es nicht angebracht und vom Umfang her auch überhaupt nicht machbar, alle verwendeten Begriffe (Vektorräume, Skalarprodukte etc.) in den allgemeinen Versionen einzuführen, sondern du beschränkst dich sinnvollerweise auf die Bedeutungen, die du für die Grafikprogrammierung benötigst. Das Zitat richtet sich eher an rüdiger, weil ich nicht weiß, wieso er gerade bei Vektoren eine (in diesem Zusammenhang recht nutzlose) allgemeine Definition haben will und bei den anderen Sachen nicht.

    Dann habe ich wohl diese Aussage falsch verstanden 😃

    Ich habe ja auch schon geschrieben, dass es etwas viel wäre so viel zu schreiben. Dafür, wenn es jemanden wirklich interessiert, kann man sich ein richtiges Buch kaufen, welches das Thema ausführlich behandelt.

    Ich werde am Freitag wohl weiter schreiben, da zur Zeit Arbeiten anstenen 🙄



  • Michael E. schrieb:

    Das Zitat richtet sich eher an rüdiger, weil ich nicht weiß, wieso er gerade bei Vektoren eine (in diesem Zusammenhang recht nutzlose) allgemeine Definition haben will und bei den anderen Sachen nicht.

    Will ich doch gar nicht 😕



  • Für alle die interessiert sind, der Artikel wird weiter geschrieben und sollte am Sonntag fertig sein...



  • Dann lassen wir uns mal überraschen 😉


Anmelden zum Antworten