Melihat & Kliping

Penggunaan utama kliping dalam grafik komputer adalah untuk menghapus objek, garis, atau segmen garis yang berada di luar panel tampilan. Transformasi tampilan tidak sensitif terhadap posisi titik-titik yang terkait dengan volume tampilan - terutama titik-titik di belakang penampil - dan titik-titik ini harus dihapus sebelum membuat tampilan.

Kliping Titik

Memotong titik dari jendela tertentu sangatlah mudah. Perhatikan gambar berikut, di mana persegi panjang menunjukkan jendela. Kliping titik memberi tahu kita apakah titik yang diberikan (X, Y) ada di dalam jendela yang diberikan atau tidak; dan memutuskan apakah kita akan menggunakan koordinat minimum dan maksimum jendela.

Koordinat X dari titik yang diberikan ada di dalam jendela, jika X terletak di antara Wx1 ≤ X ≤ Wx2. Dengan cara yang sama, koordinat Y dari titik tertentu berada di dalam jendela, jika Y terletak di antara Wy1 ≤ Y ≤ Wy2.

Kliping Garis

Konsep pemotongan garis sama dengan pemotongan titik. Dalam pemotongan garis, kita akan memotong bagian garis yang berada di luar jendela dan hanya menyimpan bagian yang ada di dalam jendela.

Kliping Garis Cohen-Sutherland

Algoritma ini menggunakan jendela kliping seperti yang ditunjukkan pada gambar berikut. Koordinat minimum untuk wilayah kliping adalah $ (XW_ {min,} YW_ {min}) $ dan koordinat maksimum untuk wilayah kliping adalah $ (XW_ {max,} YW_ {max}) $.

Kami akan menggunakan 4-bit untuk membagi seluruh wilayah. 4 bit ini mewakili Atas, Bawah, Kanan, dan Kiri dari wilayah seperti yang ditunjukkan pada gambar berikut. Di siniTOP dan LEFT bit disetel ke 1 karena itu adalah TOP-LEFT sudut.

Ada 3 kemungkinan untuk garis -

  • Garis dapat sepenuhnya berada di dalam jendela (Baris ini harus diterima).

  • Garis dapat sepenuhnya berada di luar jendela (Garis ini akan sepenuhnya dihapus dari wilayah tersebut).

  • Garis bisa sebagian berada di dalam jendela (Kita akan menemukan titik persimpangan dan hanya menggambar bagian garis yang ada di dalam wilayah).

Algoritma

Step 1 - Tetapkan kode wilayah untuk setiap titik akhir.

Step 2 - Jika kedua titik akhir memiliki kode wilayah 0000 kemudian terima baris ini.

Step 3 - Lain, lakukan yang logis ANDoperasi untuk kedua kode wilayah.

Step 3.1 - Jika hasilnya tidak 0000, lalu tolak baris tersebut.

Step 3.2 - Jika tidak, Anda perlu kliping.

Step 3.2.1 - Pilih titik akhir dari garis yang berada di luar jendela.

Step 3.2.2 - Temukan titik potong pada batas jendela (berdasarkan kode wilayah).

Step 3.2.3 - Ganti titik akhir dengan titik potong dan perbarui kode wilayah.

Step 3.2.4 - Ulangi langkah 2 hingga kami menemukan garis terpotong yang diterima secara sepele atau ditolak.

Step 4 - Ulangi langkah 1 untuk baris lainnya.

Algoritma Pemotongan Garis Cyrus-Beck

Algoritma ini lebih efisien daripada algoritma Cohen-Sutherland. Ini menggunakan representasi garis parametrik dan produk titik sederhana.

Persamaan parametrik garis adalah -

P0P1:P(t) = P0 + t(P1 - P0)

Misalkan N i menjadi tepi normal luar E i . Sekarang pilih sembarang titik P Ei di tepi E i lalu perkalian titik N i . [P (t) - P Ei ] menentukan apakah titik P (t) adalah "di dalam tepi klip" atau "di luar" tepi klip atau "Di" tepi klip.

Titik P (t) ada di dalam jika N i . [P (t) - P Ei ] <0

Titik P (t) berada di luar jika N i . [P (t) - P Ei ]> 0

Titik P (t) berada di tepi jika N i . [P (t) - P Ei ] = 0 (Titik potong)

N i . [P (t) - P Ei ] = 0

N i . [P 0 + t (P 1 - P 0 ) - P Ei ] = 0 (Mengganti P (t) dengan P 0 + t (P 1 - P 0 ))

N i . [P 0 - P Ei ] + N i .t [P 1 - P 0 ] = 0

N i . [P 0 - P Ei ] + N i ∙ tD = 0 (menggantikan D untuk [P 1 - P 0 ])

N i . [P 0 - P Ei ] = - N i ∙ tD

Persamaan untuk t menjadi,

$$ t = \ tfrac {N_ {i}. [P_ {o} - P_ {Ei}]} {{- T_ {i} .D}} $$

Ini berlaku untuk kondisi berikut -

  • N i ≠ 0 (kesalahan tidak dapat terjadi)
  • D ≠ 0 (P 1 ≠ P 0 )
  • N i ∙ D ≠ 0 (P 0 P 1 tidak sejajar dengan E i )

Kliping Poligon (Algoritma Sutherland Hodgman)

Poligon juga dapat dipotong dengan menentukan jendela pemotongan. Algoritma pemotongan poligon Sutherland Hodgeman digunakan untuk pemotongan poligon. Dalam algoritma ini, semua simpul poligon terpotong pada setiap tepi jendela pemotongan.

Pertama poligon terpotong di tepi kiri jendela poligon untuk mendapatkan simpul baru dari poligon. Simpul baru ini digunakan untuk memotong poligon ke tepi kanan, tepi atas, tepi bawah, dari jendela kliping seperti yang ditunjukkan pada gambar berikut.

Saat memproses tepi poligon dengan jendela kliping, titik persimpangan ditemukan jika tepi tidak sepenuhnya berada di dalam jendela kliping dan sebagian tepi dari titik persimpangan ke tepi luar terpotong. Gambar berikut menunjukkan kliping tepi kiri, kanan, atas dan bawah -

Kliping Teks

Berbagai teknik digunakan untuk memberikan kliping teks dalam grafik komputer. Itu tergantung pada metode yang digunakan untuk menghasilkan karakter dan persyaratan aplikasi tertentu. Ada tiga metode untuk pemotongan teks yang tercantum di bawah ini -

  • Semua atau tidak ada pemotongan string
  • Semua atau tidak ada pemangkasan karakter
  • Pemotongan teks

Gambar berikut memperlihatkan semua atau tidak ada pemangkasan string -

Dalam semua atau tidak ada metode pemotongan string, baik kita menyimpan seluruh string atau menolak seluruh string berdasarkan jendela pemotongan. Seperti yang ditunjukkan pada gambar di atas, STRING2 seluruhnya berada di dalam jendela kliping jadi kami menyimpannya dan STRING1 hanya sebagian di dalam jendela, kami menolak.

Gambar berikut memperlihatkan semua atau tidak ada pemotongan karakter -

Metode pemotongan ini didasarkan pada karakter daripada seluruh string. Dalam metode ini jika string seluruhnya berada di dalam jendela kliping, maka kami menyimpannya. Jika sebagian berada di luar jendela, maka -

  • Anda hanya menolak bagian dari string yang berada di luar

  • Jika karakter berada di batas jendela kliping, maka kami membuang seluruh karakter itu dan menyimpan string lainnya.

Gambar berikut menunjukkan pemotongan teks -

Metode pemotongan ini didasarkan pada karakter daripada keseluruhan string. Dalam metode ini jika string seluruhnya berada di dalam jendela kliping, maka kami menyimpannya. Jika sebagian berada di luar jendela, maka

  • Anda hanya menolak bagian string yang berada di luar.

  • Jika karakter berada di batas jendela kliping, maka kami hanya membuang bagian karakter yang berada di luar jendela kliping.

Grafik Bitmap

Bitmap adalah kumpulan piksel yang mendeskripsikan gambar. Ini adalah jenis grafik komputer yang digunakan komputer untuk menyimpan dan menampilkan gambar. Dalam jenis grafik ini, gambar disimpan sedikit demi sedikit dan oleh karena itu dinamai grafik Bit-map. Untuk pemahaman yang lebih baik, mari kita pertimbangkan contoh berikut di mana kami menggambar wajah smiley menggunakan grafik bit-map.

Sekarang kita akan melihat bagaimana wajah tersenyum ini disimpan sedikit demi sedikit dalam grafik komputer.

Dengan mengamati wajah smiley asli secara dekat, kita dapat melihat bahwa terdapat dua garis biru yang direpresentasikan sebagai B1, B2 dan E1, E2 pada gambar di atas.

Dengan cara yang sama, smiley direpresentasikan menggunakan bit kombinasi A4, B5, C6, D6, E5, dan F4.

Kerugian utama dari grafik bitmap adalah -

  • Kami tidak dapat mengubah ukuran gambar bitmap. Jika Anda mencoba mengubah ukuran, piksel menjadi buram.

  • Bitmap berwarna bisa sangat besar.