Registriert: Di Dez 13, 2011 19:14 Beiträge: 166 Wohnort: Hamburg / Mölln
Programmiersprache: D
Hallo. Ich möchte gerne eine Schwarzes Quadrat zeichnen mit den Positionen:
Code:
Vertex(10, 10)
Vertex(110, 10)
Vertex(110, 110)
Vertex(10, 110)
Das klappt problemlos. Ich erhalte das folgende Bild:
Doch setze ich einen Mittelpunkt fest (z.B. 60|60 in diesem Fall) dann verrutscht das Bild:
Wie ist das zu erklären? Als ich noch mit glRotate gearbeitet habe, musste ich vorher und nachher ein glTranslate durchführen, um den Mittelpunkt manuell anzugeben. Doch zur Zeit arbeite ich mit eigenen Matrizen und berechne den Mittelpunkt mit ein:
const float ty = center.x * ss - center.y * sc + position.y;
return mat4x4(sc, ss, tx,
-ss, sc, ty,
0, 0, 1);
}
Ist da was an meinem Code falsch oder habe ich einen Denkfehler? Muss ich tatsächlich immer noch vorher und hinterher ein glTranslate machen? Und wenn ja: warum, wenn ich doch den Mittelpunkt in die Berechnung mit einfließen lasse. In beiden Fällen erstelle ich vor dem Zeichnen mithilfe der obigen 'Construct' Funktion eine neue Matrix zur Darstellung, daran liegt es also nicht. Im zweiten Fall habe ich in meiner Berechnung lediglich noch center.x und center.y auf 60|60, statt auf 0|0.
Registriert: Di Dez 13, 2011 19:14 Beiträge: 166 Wohnort: Hamburg / Mölln
Programmiersprache: D
Ich kann nirgends einen Link zu deinem Code entdecken. :/ Inwiefern würde mich denn das aufsplitten in 3 Funktionen weiterbringen? Würde das nicht in derselben Struktur / Matrix resultieren? Mein Vertex struct nimmt float's entgegen, wenn ich also den Wert 10 übergebe wird das in C ganz automatisch zu 10.f.
Gibt es denn etwas, was ich grundsätzlich falsch mache bei meinem Vorgehen?
Inwiefern würde mich denn das aufsplitten in 3 Funktionen weiterbringen? Würde das nicht in derselben Struktur / Matrix resultieren?
Ich habe bis jetzt noch keine Matrix-Bibliothek gesehen, welche alle Funktionen zusammenfasst. Die Reihenfolge von den Funktionen ist sehr heikel, es kann schnell zu Ergebnissen führen, welche man nicht will.
Mitglieder in diesem Forum: Bing [Bot] und 15 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.