计算机图形学-直线裁剪(Cohen-Sutherland编码裁剪算法)

计算机图形学-直线裁剪(Cohen-Sutherland编码裁剪算法)_第1张图片

键盘输入c裁剪,输入r恢复

计算机图形学-直线裁剪(Cohen-Sutherland编码裁剪算法)_第2张图片计算机图形学-直线裁剪(Cohen-Sutherland编码裁剪算法)_第3张图片


#include
#include
#include

#define LEFT_EDGE 1
#define RIGHT_EDGE 2
#define BOTTOM_EDGE 4
#define TOP_EDGE 8

void LineGL(int x0, int y0, int x1, int y1){
	glBegin(GL_LINES);
	glColor3f(1.0f, 0.0f, 0.0f); glVertex2f(x0, y0);
	glColor3f(0.0f, 1.0f, 0.0f); glVertex2f(x1, y1); 
	glEnd();
}

struct Rectangle{
	float xmin, xmax, ymin, ymax;
};

Rectangle rect;
int x0, y0, x1, y1;

int CompCode(int x, int y, Rectangle rect){
	int code = 0x00;
	if (y < rect.ymin)
		code = code | 4;
	if (y>rect.ymax)
		code = code | 8;
	if (x>rect.xmax)
		code = code | 2;
	if (x




你可能感兴趣的:(计算机图形学)