Hallo Leute,
mein erster Post bei Euch, vielleicht könnt Ihr mir ja helfen .
Im Moment habe ich ein kleines Verstädnisproblem, was die Umwandlung von NDC-Koordinaten in Screen-Koordinaten betrifft.
Am besten gleich mal ein Beispiel:
Angenommen es gilt z.B. folgende Viewport-Einstellung:
Code:
glViewport(0,0,640,480)
Im Folgenden gehe ich nur von der NDC-X-Koordinate aus: Es ist bekannt, dass der Wert im Bereich [-1...1] liegt.
Der erste Fall ist klar, doch der zweite gibt mir zu denken. Denn normalerweise kann xw doch unter den gegebenen Viewport-Einstellungen maximal nur 639 betragen und nicht 640.
Das Problem könnte man zwar leicht beheben, indem man die Formel geringfügig anpasst:
Code:
xw = (xnd + 1) * ((Width-1) / 2) + X.
Dennoch wollte ich mal Eure Meinung einfahren, vielleicht habe ich an einer anderen Stelle einen Denkfehler!
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Wenn dein Viewport 640 Pixel breit ist, hast du nur Werte von 0 bis 639 inklusive. Sonst hättest du ja 641 Pixel breite, weil die 0 ja mitgezählt wird.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Allerdings kann ich damit nicht viel anfangen, denn das was du sagst ist mir natürlich bewusst .
Es geht mir darum wie und warum die Formel 640 statt 639 ausspuckt.
Natürlich weiß ich, dass x maximal 639 sein kann (das sagte ich in dem ersten Post ja bereits), aber ich habe ja vorgerechnet was passiert, setzt man für xnd = 1 und für die Breite = 640 in die Formel ein.
Sollte ich nicht genau verstanden haben, worauf du hinaus willst, wäre es nett wenn du das noch näher erläutern würdest.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Ähhh, ja, da habe ich mich wohl verlesen. Ich dachte, die Formel würde genau anders herum arbeiten... So gesehen ist das natürlich eine Interessante Frage...
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Mitglieder in diesem Forum: Google [Bot] und 4 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.