คอมพิวเตอร์กราฟิกเกี่ยวข้องกับการวาดภาพและกราฟิกบนหน้าจอคอมพิวเตอร์ ที่นี่ เราถือว่าหน้าจอเป็นระบบพิกัด 2 มิติ ระบบพิกัดนี้เริ่มจากซ้ายบน (0,0) และสิ้นสุดที่ด้านล่างขวา
กำลังดูเครื่องบิน เป็นพื้นที่ที่กำหนดไว้สำหรับการวาดภาพกราฟิกในคอมพิวเตอร์กราฟิก หรือบริเวณที่มองเห็นได้ของหน้าจอ
การตัดทอนกำลังลบจุดหรือกราฟิกเหล่านั้นที่อยู่นอกระนาบการดู
มาดูตัวอย่างเพื่อทำความเข้าใจการตัดต่อ
จุด C และ D จะถูกตัดเมื่ออยู่นอกระนาบการดูที่มีเครื่องหมายสีน้ำเงิน
เพื่อที่จะตัดจุดในคอมพิวเตอร์กราฟิก เราต้องรู้พิกัดของสถานที่ดู คือ (Xนาที , Yนาที ) และ (Xmax, Ymax) จากนั้นเราจะเปรียบเทียบพิกัดของจุดกับพิกัดเหล่านี้
ถ้า (Xนาที , Yนาที ) <=(จุด X จุด Y) <=(Xสูงสุด , Yสูงสุด ) จากนั้นจุดจะอยู่ภายในระนาบการดู มิฉะนั้น จะถูกตัดออก
ตัวอย่าง
โปรแกรมแสดงตัวอย่างการตัดจุด
#include <iostream> using namespace std; void pointClipping(int points[][2], int n, int Xmin, int Ymin, int Xmax, int Ymax) { cout<<"Points that are removed by Point clipping Algorithm are :"<<endl; for (int i = 0; i < n; i++){ if ((points[i][0] < Xmin) || (points[i][0] > Xmax)) cout<<"("<<points[i][0]<<","<<points[i][1]<<")\t"; else if ((points[i][1] < Ymin) || (points[i][1] > Ymax)) cout<<"("<<points[i][0]<<","<<points[i][1]<<")\t"; } } int main() { int points[6][2] = {{0, 0}, {-10, 10}, {1000, 1000}, {100, 900}, {501, 311}, {250, 250}}; int Xmin = 0; int Xmax = 500; int Ymin = 0; int Ymax = 500; pointClipping(points, 6, Xmin, Ymin, Xmax, Ymax); return 0; }
ผลลัพธ์
Points that are removed by Point clipping Algorithm are : (-10,10) (1000,1000) (100,900) (501,311)