Z tego, co widziałem, prawie wszystkie rzeczy używają współrzędnych, gdzie (0, 0) znajduje się w lewym górnym rogu, a dodatnia oś Y idzie w dół ekranu.
Dlaczego tak jest? Dlaczego nie konwencjonalna dodatnia oś Y idzie w górę, jak pokazano na wykresach w prostych klasach matematycznych?
coordinates
graph
użytkownik3387566
źródło
źródło
Odpowiedzi:
Jest to spowodowane historią. Wczesne komputery miały lampy katodowe (CRT), które „rysują” obraz za pomocą promienia katodowego od lewego górnego rogu do prawego dolnego rogu.
Aby ułatwić interfejs między pamięcią karty graficznej a CRT, pamięć została odczytana od początku, a obraz został narysowany od lewego górnego rogu (z najniższym adresem pamięci) do prawego dolnego rogu (z najwyższym adresem pamięci).
Rozszerzenie (na podstawie komentarzy)
CRT są oparte na analogowych telewizorach, które były dostępne w tym czasie.
Telewizory tworzą obraz linia po linii najpierw od lewej do prawej, a następnie od góry do dołu . Można przypuszczać, że przyczyną tego jest styl pisania w zachodnich zaprzeczeniach.
źródło
To świetne pytanie, o którym myślałem wiele razy. Prosta odpowiedź na pytanie „dlaczego” polega na tym, że formaty telewizyjne również rysowały swoje linie od lewej do prawej, a następnie od góry do dołu. Oryginalnymi monitorami komputerowymi były ekrany CRT (małe telewizory), więc format oczywiście pozostał ten sam. Kiedy monitory stały się płaskimi ekranami (a telewizory również stały się płaskimi ekranami), równie naturalne było zachowanie tego samego formatu dla łatwej kompatybilności.
Oczywiście możesz zapytać: dlaczego telewizory rysują w ten sposób? Zostały one wynalezione na początku XX wieku, więc możesz sobie wyobrazić, ile myśli lub jej braku poszło w projekt, jeśli nawet został zakwestionowany. Uwaga: nie ma oznaczać braku szacunku, ponieważ niezwykle trudne jest uzyskanie równań dla promieni odchylających magnetycznie do odpowiednich linii na ekranie, w przeciwieństwie do prostej matrycy małych „żarówek”. (W ten sposób pojawia się pytanie, w jaki sposób na Ziemi wymyślili CRT przed prostą matrycą kropek, na początku XX wieku?)
Niemniej jednak przypuszczam, że prawdopodobnie nigdy nie było kwestionowane (zła rzecz), ponieważ języki zachodnie piszą słowa od lewej do prawej i od góry do dołu. Prawdopodobnie nikt nie pomyślał o możliwości zrobienia tego inaczej.
Osobiście nie lubię tego formatu. Takie podejście zyskałem, programując gry i inne symulacje z orbitami eliptycznymi. Ilekroć spojrzysz na rysowanie równań dotyczących grzechu, cos lub opalenizny, musisz ostrożnie odwracać znaki, które dotyczą parametrów osi y ... inaczej dostaniesz niewłaściwą rzecz.Przykładem mogą być równania parametryczne dla elipsy narysowanej pod dowolnym kątem 2D. To może być prawdziwy koszmar, w którym rozcina się grzech grzech, grzech i podobne rzeczy.
Mówiąc zwięźle w kategoriach matematycznych, ekran znajduje się w kwadrancie 4 zamiast kwadrantu 1. Jest to niepotrzebnie skomplikowane.
BTW, kiedy dojdziesz do 3 wymiarów, uważa się, że oś Z idzie w górę w kierunku dodatnim. Trochę ironiczne. [EDYCJA]: Może nie, zobacz mój komentarz poniżej.
Jeszcze 2 rzeczy, które zdałem sobie sprawę / z którymi się spotkałem:
Zegary słoneczne na półkuli północnej (które mają wskaźniki skierowane na północ i dyski równoległe do ziemi) zawsze obracają się zgodnie z ruchem wskazówek zegara . Jeśli więc umieścimy godzinę zero na górze „tarczy zegara”, wskaźnik cienia zacznie przesuwać się w prawo. Może to być początek kierunku od lewej do prawej w językach zachodnich, rozprzestrzeniającego się do współrzędnych kartezjańskich i ekranów telewizyjnych / komputerowych.
Stare komputery nie rysowały zbyt wiele obiektów graficznych. Narysowali tekst w wierszu polecenia. Naturalne jest więc ustawienie linii 0 na y = 0. Gdybyśmy mieli dolne lewe pochodzenie, matematyka rysowania linii tekstowych byłaby nieco bardziej zaangażowana, i mogłoby to być wielką rzeczą dla tych starych powolnych komputerów (którzy nawet stworzyli skrót do zwiększania o 1, na miłość boską, o nazwie „++”). Ponadto musisz znać rozdzielczość ekranu, a jeśli po prostu wykonasz linię 0 przy y = 0, nie musisz znać rozdzielczości.
źródło
Dodatek: Wczesne grafiki zostały wykonane na monitorach wektorowych , tylko jeden krok w górę od oscyloskopów widocznych w laboratorium, gdzie (0,0) znajdowałby się dokładnie na środku ekranu, z zastrzeżeniem pewnego obrotu pokrętła, aby ustawić skalę X / Y, X Przesunięcie / Y i ewentualnie odwrócenie X / Y.
Dedykowany sprzęt „Asteroidów” Atari (1979) wykorzystał ekran wektorowy; interesująco byłoby wiedzieć, co według niego jest jego układem współrzędnych programu.
„Sketchpad” Ivana SutherlandaSystem (1963) oparty był na wyświetlaczu wektorowym TX-2 , aw „Sketchpad: Graficzny system komunikacji człowiek-maszyna” (praca doktorska, styczeń 1963), pisze na stronie 70 i następnych:
Diagram 5.2 na stronie 73 pokazuje, że „układ współrzędnych strony” wykorzystuje konwencję matematyczną kartezjańskiego układu współrzędnych X / Y. (Można by zapytać, dlaczego ta konwencja jest taka, jaka jest ...)
źródło
Nie wszystko jest w lewym górnym rogu.
Na przykład OpenGL określa, że początek jest u dołu po lewej stronie, i jest to wszechobecne w całym interfejsie API: współrzędne tekstury, rzutnie, prostokąty texel, standardowa projekcja orto: jest do końca po lewej stronie u dołu.
Tutaj jest różnica w myśleniu.
Na ekranach komputerów, podobnie jak w książkach, kiedy ludzie czytają (i zakładam, że jest to język angielski), czytają od lewej do prawej i od góry do dołu. Zrobiłeś to sam, kiedy napisałeś to pytanie i robisz to, czytając odpowiedzi na to pytanie.
W matematyce i projektowaniu, gdy rysujesz wykres, masz oś X i Y z dodatnim X skierowanym w lewo i dodatnim Y skierowanym w górę.
Jeśli budujesz coś w stylu graficznego interfejsu użytkownika 2D w grze, może być łatwiejsze i bardziej intuicyjne dla wielu osób, aby rozłożyć go w sposób „początkowy lewy górny”.
Jeśli budujesz coś, co ma naśladować projekt lub układ na papierze milimetrowym, wiele osób może łatwiej i bardziej intuicyjnie rozłożyć je w sposób „początkowy lewy dolny”.
W rzeczywistości oba są dość nieformalnymi konwencjami, a jeśli tworzysz projekcję orto, możesz faktycznie wybrać swoje pochodzenie w dowolnym dowolnym punkcie na (lub poza) ekranem, z dodatnim X skierowanym w lewo lub w prawo i dodatnim Y idzie w górę lub w dół. To tylko kwestia odpowiedniego dostosowania matrycy projekcyjnej.
Dlatego jedyną ważną rzeczą jest wybór konwencji, z której zamierzasz korzystać i konsekwentnie z niej korzystać.
źródło
Ponieważ ekrany zaczynają renderować obraz od lewego górnego rogu. Łatwiej byłoby powiązać renderowanie lub rysowanie osi współrzędnych, gdy (0,0,0) znajduje się w lewym górnym rogu, a oś Y wchodzi w ekran.
źródło
Argument ZA: (przez przykład)
Kod dopasowuje wyniki na ekranie :
Czerwona strzałka byłaby do góry nogami jeśli NIE użyjesz lewego górnego źródła.
Nie mogę powiedzieć, czy to jest „dlaczego”. Właśnie dlatego jest to dobry powód pochodzenia w lewym górnym rogu.
źródło