线段的编码裁减

本文旨在探讨二维图形裁剪技术,重点介绍直线裁剪的原理,包括编码裁剪算法和梁友栋算法。通过VC+OpenGL平台,我们将实现直线的编码裁剪算法,并展示如何在一个封闭矩形内裁剪任意直线。此外,文章还涵盖了交互式直线段裁剪的实现方法。
摘要由CSDN通过智能技术生成

目的:了解二维图形裁剪的原理(点的裁剪、直线的裁剪、多边形的裁剪),利用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值