资源简介
已知线段 P1P2的两个端点坐标分别是 P1(-0.4, 0.8)和 P2(0.8, -0.4),
裁剪窗口为(0, 0)~(0.8, 0.8),请使用 Cohen-Sutherland 算法构造一个完成该裁剪任务的完整程序。
代码片段和文件信息
#include
#define LEFT 1
#define RIGHT 2
#define BOTTOM 4
#define TOP 8
int x1=-40y1=80 x2=80 y2=-40 XL=0 XR=80 YB=0 YT=80;
int x11=-40y11=80 x21=80 y21=-40;
int encode(int xint y)
{
int c = 0;
if (x < XL) c |= LEFT;
if (x > XR) c |= RIGHT;
if (y < YB) c |= BOTTOM;
if (y > YT) c |= TOP;
return c;
}
void CS_LineClip()
{
int x y;
int code1 code2 code;
code1 = encode(x1 y1);
code2 = encode(x2 y2);
while (code1 != 0 || code2 != 0)
{
if (code1 & code2)
return;
if (code1 != 0)
code = code1;
else
code = code2;
if (LEFT & code)
{
x = XL;
y = y1 + (y2 - y1)*(XL - x1) / (x2 - x1);
}
else if (RIGHT & code)
{
x = XR;
y = y1 + (y2 - y1)*(XR - x1) / (x2 - x1);
}
else if (BOTTOM & code)
{
y = YB;
x = x1 + (x2 - x1)*(YB - y1) / (y2 - y1);
}
else if (TOP & code)
{
y = YT;
x = x1 + (x2 - x1)*(YT - y1) / (y2 - y1);
}
if
- 上一篇:QT编写的电子时钟 c++源码
- 下一篇:一元多项式运算器
相关资源
- 球的绘制与消隐
- 立方体的绘制与消隐
- 计算机图形学教程第二版实验生成“
- 计算机图形学图形的区域填充
- 计算机图形学正十二面体旋转
- 计算机图形学消隐实验转
- 计算机图形学实验报告
- 计算机图形学,实现茶壶旋转,颜色
- VC++计算机图形学制作二维图形变换代
- 计算机图形学作业原创C/C++ VC++6.0,
- VC++6.0编写的画图软件
- 计算机图形学MFC
- 计算机图形学大作业 用vc++编的,包括
- 计算机图形学动态图形源代码
- 计算机图形学作业源程序
- 计算机图形学三维变换
- 计算机图形学大实验直线DDA和bresenh
- 计算机图形学 OPENGL 多边形填充 有序
- 计算机图形学扫描线填充算法
- Koch曲线算法 计算机图形学 孔令德 案
- 计算机图形学旋转茶壶
- 计算机图形学实验 绘制渐变三角形
- 计算机图形学实验——科赫雪花
- C语言 种子填充 计算机图形学
- 计算机图形学课程设计源代码
- c++ OpenGL DDA/Bresenham 算法画直线, 多
- 计算机图形学-简单的会动机器人
- 计算机图形学3d图形——茶壶含花纹,
评论
共有 条评论