Warum befindet sich Java 2D Ursprung in der oberen linken Ecke?

8

Ich beschwere mich nicht, wundere mich nur. Warum benutzt Java den oberen linken Punkt der Zeichenoberfläche als Ursprung? Ich nehme an, dass es natürlicher ist, die linke untere Ecke als Ursprung zu wählen und die Achse zu erhöhen, wenn sie nach oben und rechts gehen (ähnlich wie bei Quarz).

    
Gunnar Schigel 15.03.2011, 02:41
quelle

10 Antworten

11

Computergrafik hat seit Anbeginn der Zeit mit QuickDraw den Ursprung oben links. Mit der unteren linken (wie in Mathematik) ist eine PostScript / PDF-Sache. Da Quartz auf PDF basiert, verwendet es seine Koordinaten, aber das ist meistens eine einzigartige Entscheidung unter Grafikbibliotheken.

    
Josh Lee 15.03.2011, 02:45
quelle
8

Es hat immer so funktioniert.

In den Tagen der Montage war Pixel eins immer in der oberen linken Ecke. Es war das erste Pixel oder Zeichen, das der Benutzer lesen konnte.

Diese Art der Nummerierung ermöglicht es Ihnen, ein unendlich langes Bild oder Text zu haben. Wenn du von unten nach links gestartet bist und eine neue Zeile hinzufügen möchtest, musst du all deine Sachen verschieben und die Koordinaten für alles neu berechnen.

    
Eric 15.03.2011 02:45
quelle
4

Könnte auch an dem CRT-Monitor liegen, wo die Elektronenkanone das Bild von links nach rechts und von oben nach unten zeichnet.

    
David Oliván Ubieto 15.03.2011 02:50
quelle
3

Wenn Sie weit genug zurückgehen, wie 1981, finden Sie einige Ausnahmen!
Ссылка

"Stellen Sie sich ein Grafikfenster vor, dessen Kanten a, b, c und d 'Grafikeinheiten von der unteren linken Ecke des Bildschirms entfernt sind (was immer der Ausgangspunkt für Grafiken ist)."

    
Beeb 02.01.2012 20:34
quelle
1

stammt wahrscheinlich vom Fernsehstandard, bei dem der Scan von oben nach unten beginnt.

    
irreputable 15.03.2011 03:37
quelle
0

Ich denke, mit den Rahmen kompatibel zu sein, die
minimieren und maximieren Der offensichtliche Fokusbereich ist, wo das erste Wort auf einer Seite in Englisch erscheint, nämlich die obere linke Hexe ist der natürlichste Weg, außer wenn es um die grafische Darstellung einiger Mathe im ersten Quadranten geht, die die zweite mit der y-Achse wurde Positiv (reflektiert oder um 180 ° gedreht über den Ursprung (ich kam dazu, während ich den Weg googelte, um das zu lösen) eigentlich wurde die entscheidung lange vor dem computer gemacht und crt alt

    
amro 21.05.2011 09:49
quelle
0

Wenn Sie mit dem rechten Koordinatensystem in der oberen linken Ecke X und Y platzieren, geht Z auf den Bildschirm. Grafik-Engine kann jetzt die Punkte kennen, die vom Bildschirm entfernt sind ... größer die Z weiter entfernt sind die Punkte .... sehr nützlich beim Rendern mehrerer Objekte im Raum platziert und einige Objekte verstecken andere ...

    
pab 19.01.2012 09:27
quelle
0

Antworten wie "es war immer so" beantworten nicht wirklich eine Frage von "warum", so dass ich verwirrt bin, warum top-wählten Antworten sind, den Status quo mit zusätzlichen Informationen neu zu erklären.

>

Eric erwähnt, dass "[...] in den Tagen der Montage Pixel eins immer in der oberen linken Ecke war", aber er erwähnt nicht warum . Er fährt fort, zu erklären, dass, wenn wir von der unteren linken Ecke beginnen und eine neue Zeile zu einem Textkörper hinzufügen möchten, wir es tun müssten, indem wir grundsätzlich alles auf dem Bildschirm von unten nach oben überschreiben (wenn Sie angefangen haben von der linken unteren Seite der vorherigen Zeit, dann hast du keinen Platz für diese neue Zeile gelassen; das Zeug muss verschoben werden, um neue Zeilen hinzuzufügen). User Irreputable kommentiert, dass dies mit nur einigen Sprachen Sinn macht (aber ich kenne keine Sprachen, die von unten nach oben beginnen, was wirklich wichtig ist), und das macht nicht viel Sinn, wenn es um Bilder geht oder Grafik; und ich stimme zu, er hat recht mit letzterem.

Ubieto gibt vielleicht die hilfreichste Antwort: Es hat vielleicht damit zu tun, wie die Elektronenkanone von CRT-Monitoren das Bild von oben nach unten, von links nach rechts zeichnet.

Aber all diese Antworten vermissen vielleicht einen wichtigen Punkt: Der Grund, warum Leute eine solche Frage stellen, dass die Spitze links der Ursprung der Äxte ist, ist nicht nur, dass der Punkt oben links ist, sondern auch, weil, im Gegensatz zu den Das kartesische Koordinatensystem, das wir alle von der Grundschule gewohnt sind, wo die y-Achse nach oben steigt, diese Computergrafik und das Java-Koordinatensystem vergrößern die y-Achse nach unten! Dies ist einer der verwirrendsten und verwirrendsten Aspekte dieses Systems. Wenn das System den Ursprung oben links auf dem Bildschirm hätte, aber die y-Achse (und negative Zahlen) nach unten verkleinert hätte, dann hätte die CRT-Monitor-Elektronenkanone das ganze Geheimnis wirklich erklärt, zumindest für mich. Schließlich würden wir dann verstehen, warum der (0,0) Punkt oben links liegt und alles andere so funktioniert, wie wir es von unserer Mathematikausbildung erwarten würden.

Dies ist jedoch bei dem 2D-Koordinatensystem für Java und Computergrafiken nicht der Fall; Die Y-Achse dieses Systems steigt überraschend nach unten. Warum? Ich denke, das ist das größte Rätsel, wenn wir die CRT oder die Ursprünge der Bildschirmtechnologie betrachten. Und um diese Frage zu beantworten, kann ich mir nur eine Möglichkeit vorstellen: Computerwissenschaftler wollten, dass das 2D-Grafikkoordinatensystem einfacher ist, und vermeiden Sie die potenzielle Verwirrung, dass die x-Achsenkoordinate immer positiv mit einer negativen y-Achse übereinstimmt. Wenn wir davon ausgehen, dass der Ursprung oben links eine Notwendigkeit aufgrund der damaligen Bildschirmtechnologie mit seiner Elektronenkanone war (vermeiden Sie das Zerreißen des Bildschirms mit dieser Technologie), dann erkennen wir, dass Computerwissenschaftler die Wahl hatten:

  1. Behandelt den Bildschirm wie seinen 4. Quadranten, wie das kartesische Koordinatensystem, mit jedem einzelnen Pixel in diesem Quadranten (auf dem Bildschirm) mit einer positiven x-Achsen-Koordinate und einer negativen y-Achsen-Koordinate (5, -5); oder

  2. Sie könnten die y-Achse um die x-Achse (vertikal nach unten) kippen, wodurch der erste Quadrant nach unten bewegt wird und jedes Pixel auf dem Bildschirm danach sowohl positive x-Achsen- als auch positive y-Achsenkoordinaten haben würde , wie (5,5). Vielleicht haben Computerwissenschaftler das einfach als eine Bequemlichkeit und einen Weg gesehen, Dinge zu tun, die Verwirrung minimieren; Zwei positive Zahlen sind vielleicht viel weniger verwirrend und einfacher zu berechnen und zu visualisieren als eine positive und eine negative Zahl.

Zusammenfassend gibt es zwei Aspekte der Frage: Das Geheimnis der Lage von (0,0) oben links statt unten links, und das Geheimnis der y-Achse, die nach unten zunimmt. Das erste Mysterium wird wahrscheinlich am besten durch die frühe Monitortechnologie erklärt, die von oben nach unten und von links nach rechts funktioniert. Und das zweite Rätsel wird wahrscheinlich am besten durch den Wunsch nach Einfachheit und Klarheit erklärt, indem ein Koordinatensystem mit zwei positiven Zahlen für die x- und y-Koordinaten anstelle des potenziell verwirrenden Systems übernommen wird, das dauerhaft auf einer positiven x-Achsen-Koordinate basiert eine negative Y-Achsen-Koordinate.

    
Rok 08.12.2015 13:12
quelle
-2

Nur eine Implementierungswahl. Bildschirmkoordinaten in Windows und anderen Betriebssystemen werden auf die gleiche Weise angegeben, daher vermute ich, dass sie diese Option gewählt haben, um mit der Wahl des Betriebssystems übereinzustimmen, was wahrscheinlich eine Vermächtnissache ist.

    
user623879 15.03.2011 02:44
quelle
-2

Es hat auch den Vorteil, dass es 2-D-Arrays in Programmen ähnelt, wobei [0] [0] sich auf das obere linke Element bezieht.

    
DaedalusUsedPerl 23.07.2012 11:38
quelle

Tags und Links