目的:了解二维图形裁剪的原理(点的裁剪、直线的裁剪、多边形的裁剪),利用VC+OpenGL实现直线的裁剪算法。
要求:1、理解直线裁剪的原理(编码裁剪算法、梁友栋算法)
2、利用VC+OpenGL实现直线的编码裁剪算法,在屏幕上用一个封闭矩形裁剪任意一条直线。
3、交互实现直线段的裁剪。
#include<GL/glut.h>
#include<stdio.h>
#include<stdlib.h>
#define LEFT_EDGE 1
#define RIGHT_EDGE 2
#define BOTTOM_EDGE 4
#define TOP_EDGE 8
float ymin=100;
int ymax=300;
int xmin=100;
int xmax=300;
struct Linea{
int x0;
int y0;
int x1;
int y1;
};
Linea l1={l1.x0=450,l1.y0=0,l1.x1=0,l1.y1=450};
Linea l2={l2.x0=450,l2.y0=200,l2.x1=0,l2.y1=200};
Linea l3={l3.x0=200,l3.y0=0,l3.x1=200,l3.y1=450};
void LineGL(Linea &li){
glBegin(GL_LINES);
glVertex2f(li.x0,li.y0);
glVertex2f(li.x1,li.y1);
if((li.x0+li.x1)/2==225&&(li.y0+li.y1)/2==22