Dalam dunia grafika komputer, menggambar garis pada layar seringkali memerlukan proses pemotongan (clipping) agar garis tersebut hanya terlihat di dalam area tampilan yang ditentukan. Salah satu algoritma yang paling fundamental dan efisien untuk tugas ini adalah Algoritma Cohen Sutherland. Algoritma ini membagi area layar menjadi sembilan region, yang memungkinkan pemotongan garis dilakukan dengan cepat dan efektif.
Inti dari Algoritma Cohen Sutherland adalah mengklasifikasikan titik-titik ujung sebuah garis ke dalam salah satu dari sembilan region yang didefinisikan oleh batas-batas area kliping. Area kliping biasanya berbentuk persegi panjang. Sembilan region ini terbentuk dari persimpangan garis-garis tak terhingga yang sejajar dengan batas-batas persegi panjang kliping.
Setiap region diberi kode empat bit (disebut Outcode) yang merepresentasikan posisi relatif titik terhadap batas-batas kliping. Kode ini dibentuk sebagai berikut:
Misalnya, sebuah titik berada di region kiri atas dan di atas batas atas, maka outcodenya akan memiliki bit 3 (kiri) dan bit 0 (atas) yang bernilai 1.
Algoritma ini kemudian mengaplikasikan aturan-aturan berdasarkan outcode dari kedua titik ujung garis (P1 dan P2) untuk menentukan apakah garis tersebut sepenuhnya di dalam, sepenuhnya di luar, atau sebagian melintasi area kliping.
Berikut adalah langkah-langkah utamanya:
outcode1 & outcode2 != 0), ini berarti kedua titik berada di sisi yang sama dari setidaknya satu batas kliping (misalnya, keduanya di kiri, atau keduanya di atas). Dalam kasus ini, garis sepenuhnya berada di luar area kliping dan tidak perlu digambar.
outcode1 & LEFT), cari titik potong dengan batas kiri.
outcode1 & RIGHT), cari titik potong dengan batas kanan.
outcode1 & BOTTOM), cari titik potong dengan batas bawah.
outcode1 & TOP), cari titik potong dengan batas atas.
Algoritma ini sangat disukai karena kesederhanaannya dan efisiensinya. Dengan menggunakan operasi bitwise untuk perbandingan outcode, algoritma ini dapat dengan cepat menyingkirkan garis yang sepenuhnya di luar area kliping, yang merupakan kasus yang umum terjadi. Penggunaan region dan outcode mengurangi kebutuhan akan perhitungan titik potong yang rumit untuk sebagian besar garis.
Meskipun ada algoritma kliping garis lain yang lebih canggih seperti Liang-Barsky, Cohen Sutherland tetap menjadi pilihan yang solid untuk banyak aplikasi grafis, terutama ketika area kliping berbentuk persegi panjang. Pemahaman mendalam tentang algoritma ini merupakan dasar penting bagi siapa saja yang terlibat dalam pengembangan grafika komputer.