资源简介
已知线段 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++源码
- 下一篇:一元多项式运算器
相关资源
- 交互式计算机图形学 第六版 OpenGL源代
- MFC 圆弧算法的实现
- 计算机图形学走样反走样时钟
- 西北工业大学软件学院计算机图形学
- 计算机图形学实验源代码中南民族大
- 绘制任意斜率的直线段
- 计算机图形学简单CAD系统
- 计算机图形学多边形种子填充算法
- 计算机图形学 消隐
- 计算机图形学作业,中点算法画椭圆
- MFC中点圆的生成算法
- 改进的有效边表算法--计算机图形学
- 最好的CS游戏opengl、C++实现
- 计算机图形学 清华大学教材 及 vc++
- 孔令德的计算机图形学实验及课程设
- c++计算机图形编程-简易绘图程序
- 计算机图形学大作业参考代码(VC版)
- 计算机图形学 图形变换 C++ MFC
- 用visual C++ 6.0编写的计算机图形的一些
- 计算机图形学简单多边形裁剪程序
- 计算机图形学 大作业 多功能图形学程
- MFC多边形画法--计算机图形学
- 计算机图形学 visual c++ 6.0 实时动画有
- 计算机图形学 visual c++ 6.0 三维变换有
- 计算机图形学基于opengl图形变换源代
- 计算机图形学大作业简易绘图板mfc
- 计算机图形学OPENGL 动画代码
- 计算机图形学画线、画圆、种子填充
- vc6.0实现的计算机图形学各种算法源代
- VC++的MFC计算机图形学点线多边形裁剪
评论
共有 条评论