Dari apa yang saya lihat hampir semua hal menggunakan koordinat di mana (0, 0) berada di kiri atas dan sumbu Y positif bergerak ke arah bawah layar Anda.
Kenapa seperti ini? Mengapa tidak sumbu Y positif konvensional naik seperti yang ditunjukkan dalam grafik di kelas matematika sederhana?
coordinates
graph
pengguna3387566
sumber
sumber
Jawaban:
Ini disebabkan dalam sejarah. Komputer awal memiliki Tabung Ray Katoda (CRT) yang "menggambar" gambar dengan sinar katoda dari sudut kiri atas ke kanan bawah.
Untuk memudahkan antarmuka antara memori kartu grafis dan CRT, memori dibaca dari awal dan gambar diambil dari kiri atas (dengan alamat memori terendah) ke kanan bawah (dengan alamat memori tertinggi).
Ekstensi (berdasarkan komentar)
CRT didasarkan pada perangkat TV analog yang tersedia saat itu.
Perangkat TV membuat gambar baris demi baris pertama dari kiri ke kanan dan kemudian dari atas ke bawah . Alasan untuk ini hanya dapat diasumsikan didasarkan pada gaya penulisan di negara barat.
sumber
Ini adalah pertanyaan bagus yang sudah sering saya pikirkan. Jawaban sederhana untuk "mengapa" adalah karena format TV juga menarik garis mereka dari kiri ke kanan kemudian dari atas ke bawah. Monitor komputer asli adalah layar CRT (TV kecil), jadi formatnya tetap sama. Ketika monitor menjadi layar datar (dan TV juga menjadi layar datar), sama wajarnya untuk menjaga format yang sama agar mudah kompatibilitas.
Tentu saja Anda bisa bertanya: mengapa TV menggambar seperti ini? Mereka diciptakan pada awal abad ke-20 sehingga Anda dapat membayangkan berapa banyak pemikiran atau ketiadaannya masuk ke desain, jika itu bahkan dipertanyakan. Catatan: tidak dimaksudkan untuk tidak sopan karena jauh lebih menantang untuk mendapatkan persamaan untuk membelokkan sinar secara magnetis ke garis yang tepat pada layar, sebagai lawan dari matriks sederhana "bola lampu" kecil. (Ini agak memunculkan pertanyaan bagaimana di bumi mereka menemukan CRT sebelum matriks titik sederhana, jauh di awal abad ke-20?)
Namun demikian, dugaan saya adalah bahwa mungkin itu tidak pernah dipertanyakan (hal yang buruk) karena bahasa Barat menulis kata-kata dari kiri ke kanan dan dari atas ke bawah. Mungkin tidak ada yang memahami kemungkinan melakukannya secara berbeda.
Secara pribadi, saya tidak suka format ini. Saya mendapatkan sikap ini ketika saya memprogram game dan simulasi lain yang melibatkan orbit elips. Setiap kali Anda mencari menggambar persamaan yang melibatkan dosa, cos, atau tan, Anda harus hati-hati membalikkan tanda-tanda yang berhubungan dengan parameter sumbu y ... atau Anda akan mendapatkan hal yang salah. Contohnya adalah persamaan parametrik untuk elips yang ditarik pada sudut 2D apa pun. Ini bisa menjadi mimpi buruk nyata membedah dosa, dosa karena dosa , dan hal-hal serupa.
Secara ringkas berbicara dalam istilah matematika, layar dalam Quadrant 4 bukannya Quadrant 1. Ini tidak perlu rumit.
BTW saat Anda mencapai 3 dimensi, sumbu z dianggap naik "ke atas" ke arah positif. Agak ironis. [EDIT]: Mungkin tidak, lihat komentar saya di bawah ini.
2 hal lagi yang saya sadari / temui:
Sundial di belahan bumi utara (yang memiliki pointer dan cakram yang menghadap ke utara sejajar dengan tanah) selalu berputar searah jarum jam . Jadi jika kita meletakkan nol jam di bagian atas "tampilan jam", maka penunjuk bayangan mulai bergerak ke kanan. Ini bisa menjadi asal dari arah kiri ke kanan dalam bahasa barat, menyebar ke koordinat Cartesian dan layar TV / komputer.
Komputer lama tidak terlalu banyak menggambar objek grafis. Mereka menggambar teks di command prompt. Jadi wajar untuk menempatkan baris 0 pada y = 0. Jika kita memiliki asal bawah-kiri, matematika menggambar garis teks akan sedikit lebih terlibat, dan itu bisa menjadi masalah besar bagi komputer lambat yang lama (yang bahkan membuat jalan pintas untuk menambah 1, demi kebaikan, demi Tuhan, disebut "++"). Plus, Anda perlu mengetahui resolusi layar, sedangkan jika Anda hanya melakukan baris 0 pada y = 0, Anda tidak perlu tahu resolusi.
sumber
Tambahan: Grafik awal dilakukan pada monitor vektor , hanya satu langkah dari osiloskop yang terlihat di lab di mana (0,0) akan berada di tengah-tengah layar, tergantung pada beberapa tombol putar untuk mengatur skala X / Y, X / Y offset, dan mungkin inversi X / Y.
Perangkat keras khusus Atari "Asteroids" (1979) misalnya menggunakan layar vektor; akan menarik untuk mengetahui apa yang dipikirkan sistem koordinat programnya.
Sistem "Sketchpad" Ivan Sutherland (1963) didasarkan pada tampilan vektor TX-2 , dan dalam "Sketchpad: Sistem Komunikasi Grafis Manusia-Mesin" (tesis PhD, Januari 1963), ia menulis di halaman 70ff:
Diagram 5.2 pada halaman 73 menunjukkan bahwa "sistem koordinat halaman" menggunakan konvensi matematis dari sistem koordinat kartesius X / Y. (Orang mungkin bertanya mengapa konvensi itu seperti itu ...)
sumber
Tidak semuanya kiri atas.
OpenGL, misalnya, menetapkan bahwa titik asal berada di bawah- kiri, dan ini meresap di seluruh API: koordinat tekstur, viewports, persegi panjang texel, proyeksi orto standar: itu adalah kiri bawah sepanjang jalan.
Ada perbedaan dalam berpikir di sini.
Di layar komputer, seperti halnya buku, ketika orang membaca (dan saya berasumsi bahasa seperti bahasa Inggris di sini) mereka baca dari kiri ke kanan dan dari atas ke bawah. Anda melakukannya sendiri ketika Anda menulis pertanyaan ini dan Anda melakukannya ketika Anda membaca jawaban untuk itu.
Dalam matematika dan desain ketika Anda memplot grafik, Anda memiliki sumbu X dan Y dengan X positif ke kiri dan Y positif naik.
Jika Anda membangun sesuatu seperti GUI 2D dalam gim, bisa lebih mudah dan lebih intuitif bagi banyak orang untuk meletakkannya dengan cara "kiri atas adalah asal".
Jika Anda membuat sesuatu untuk meniru desain atau tata letak pada kertas grafik, mungkin lebih mudah dan lebih intuitif bagi banyak orang untuk meletakkannya dengan cara "kiri bawah adalah asal".
Sebenarnya kedua hal ini adalah konvensi yang cukup informal, dan jika Anda membuat proyeksi orto Anda sebenarnya dapat memilih untuk memiliki asal Anda pada titik sembarang pada (atau mematikan) layar, dengan X positif pergi ke kiri atau kanan dan positif Anda naik atau turun. Ini hanya masalah menyesuaikan matriks proyeksi Anda sesuai.
Karenanya, satu-satunya hal yang penting adalah memilih konvensi mana yang akan Anda gunakan dan menggunakannya secara konsisten.
sumber
Karena layar mulai menampilkan gambar dari sudut kiri atas. Akan lebih mudah untuk mengkoordinasikan rendering atau gambar sumbu koordinat ketika (0,0,0) berada di sudut kiri atas dengan sumbu + Y masuk ke layar.
sumber
Argumen UNTUK: (Dengan Contoh)
Kode cocok dengan hasil di layar :
Panah merah akan terbalik jika Anda TIDAK menggunakan asal kiri atas.
Saya tidak bisa mengatakan apakah ini "mengapa". Hanya saja, itu alasan yang bagus untuk asal kiri atas.
sumber