Computer >> Máy Tính >  >> Lập trình >> C ++

Thuật toán cắt điểm trong đồ họa máy tính trong C ++


Đồ họa máy tính xử lý việc vẽ hình ảnh và đồ họa trên màn hình máy tính. Ở đây, chúng tôi coi màn hình như một hệ tọa độ 2-D. Hệ tọa độ này bắt đầu từ trên cùng bên trái (0,0) và kết thúc ở dưới cùng bên phải.

Máy bay xem là vùng được xác định để vẽ đồ họa trong đồ họa máy tính. Hoặc vùng hiển thị của màn hình.

Clipping đang xóa những điểm hoặc đồ họa nằm ngoài mặt phẳng quan sát.

Hãy lấy một ví dụ để hiểu về clipping.

Thuật toán cắt điểm trong đồ họa máy tính trong C ++

Tại đây, các điểm C và D sẽ được cắt bớt khi chúng ở bên ngoài mặt phẳng quan sát được đánh dấu bằng màu xanh lam.

Để ghi lại một điểm trong đồ họa máy tính. Chúng tôi cần biết tọa độ của địa điểm xem, tức là (X phút , Y phút ) và (Xmax, Ymax). Sau đó, chúng tôi sẽ so sánh tọa độ của điểm với các tọa độ này.

Nếu (X phút , Y phút ) <=(Điểm X, Điểm Y) <=(X max , Y tối đa ), thì điểm nằm bên trong mặt phẳng quan sát nếu không nó sẽ bị cắt bớt.

Ví dụ

Chương trình minh họa cắt điểm,

#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;
}

Đầu ra

Points that are removed by Point clipping Algorithm are :
(-10,10) (1000,1000) (100,900) (501,311)