梁友栋裁剪算法

用任意颜色绘制窗口,并用一种颜色绘制线段,利用P181页所示梁友栋裁剪算法对线段进行裁剪。要求能够演示出裁剪过程,裁剪前的图形要绘出,当按下任意按键,绘制出裁剪结果。请使用TC打开源程序:

#include "graphics.h"

#include "stdio.h"

#define FALSE 0

#define TRUE 1

int Clip_test(float q,float d,float *t0,float *t1)

{

float r;

if(q<0)

{

r=d/q;

if(r>*t1)

return(FALSE);

else if(r>*t0)

{

*t0=r;

return(TRUE);

}

}

else if(q>0)

{

r=d/q;

if(r

return(FALSE);

else if(r

{

*t1=r;

return(TRUE);}

}

else if(d<0)

return(FALSE);

return (TRUE);

}

void Line_Clipping(int x1,int y1,int x2,int y2,int xwmin,int ywmin,int xwmax,int ywmax)

{

float dx,dy,t0,t1;

t0=0;

t1=1;

dx=x2-x1;

if(Clip_test(-dx,x1-xwmin,&t0,&t1))

if(Clip_test(dx,xwmax-x1,&t0,&t1))

{

dy=y2-y1;

if(Clip_test(-dy,y1-ywmin,&t0,&t1))

if(Clip_test(dy,ywmax-y1,&t0,&t1))

{

if(t1<1)

{

x2=x1+t1*dx;

y2=y1+t1*dy;

}

if(t0>0)

{

x1=x1+t0*dx;

y1=y1+t0*dy;

}

line(x1,y1,x2,y2);

}

}

}

void main()

{

float x1=76,y1=40,x2=60,y2=80,xw_xmin=50,xw_xmax=80,yw_ymin=50,yw_ymax=70;

int gdriver=DETECT,gmode=0;

initgraph(&gdriver,&gmode,"C:\\TURBOC2");

setcolor(6);

rectangle(xw_xmin,yw_ymin,xw_xmax,yw_ymax);

line(x1,y1,x2,y2);

getch();

cleardevice();

setcolor(7);

Line_Clipping(x1,y1,x2,y2,xw_xmin,yw_ymin,xw_xmax,yw_ymax);

setcolor(4);

rectangle(xw_xmin,yw_ymin,xw_xmax,yw_ymax);

getch();

restorecrtmode();

}

java实现梁友栋裁剪算法_梁友栋裁剪算法相关推荐

  1. java常见的hash算法_常见的哈希算法和用途

    写在前面 哈希算法经常会被用到,比如我们Go里面的map,Java的HashMap,目前最流行的缓存Redis都大量用到了哈希算法.它们支持把很多类型的数据进行哈希计算,我们实际使用的时候并不用考虑哈 ...

  2. java 寻路算法_游戏中的寻路算法解析

    游戏角色的自动寻路,已经是游戏中一个历史比较悠久的领域,较为成熟也有很多种实现.这里摘录一句后面所提的参考资料中的描述:"业内AI开发者中有一句话:"寻路已不是问题."我 ...

  3. k均值算法 二分k均值算法_如何获得K均值算法面试问题

    k均值算法 二分k均值算法 数据科学访谈 (Data Science Interviews) KMeans is one of the most common and important cluste ...

  4. ios笔试题算法_微软笔试题-Dijkstra算法

    Dijkstra算法是典型的算法.Dijkstra算法是很有代表性的算法.Dijkstra一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN, CLOSE表的方式,这里均采用永久和临 ...

  5. 斗牛怎么玩法算法_游戏开发中的算法

    游戏技术这条路,可深可浅.你可以满足于完成GamePlay玩法层面的东西,你也可以满足于架构和框架设计层面的东西,你也可以醉心于了解某一游戏引擎带来的掌控感.但是,我们不该止步于此,止步与目前所见或所 ...

  6. 图像 异常检测算法_检测图像异常的算法

    图像 异常检测算法 Modern applications are generating enormous amounts of image data. And in the last years, ...

  7. 最小径集的算法_机器学习的利器——集成算法

    最近在打算法竞赛的时候用到了集成算法,效果还不错,索性就总结了一篇集成算法的文章,希望能帮到正在转行的数据分析师们. 集成算法核心思想 集成算法的核心思想是通过构建并结合多个学习器来完成学习任务,也就 ...

  8. 标签传播算法_复杂网络社区发现算法汇总

    社区发现 这篇文章汇总了一些常见的社区发现概念和算法,包括 Modularity Q Fast Unfolding(Louvain Algorithm) LPA SLPA KL算法 GN算法 社区: ...

  9. 图像重建算法_基于深度学习图像重建算法(DLIR)对CT图像质量和剂量优化的研究:体模实验...

    编者按:今年Joël Greffier博士等在European Radiology (IF 4.1)上发表了题为<Image quality and dose reduction opportu ...

最新文章

  1. 不要抱怨,勇敢向前走,你就能拥有更好的自己
  2. 提高SQL的查询效率
  3. Tensorflow遇到的问题InvalidArgumentError: Graph execution error:2 root error(s) found.解决方法
  4. 聊聊引用和 ThreadLocal 那些事儿
  5. 对窗口过程函数WndProc()的一点理解
  6. 在 VS Code 中轻松 review GitHub Pull Requests
  7. ora28500 mysql_Oracle使用 ODBC+DBLINK 访问 Mysql
  8. (原创)3.2 AddOwner和OverrideMetadata的区别
  9. 大数据学习笔记02:在私有云上创建与配置虚拟机
  10. java用户输入_如何用Java获取用户输入?
  11. MonkeyScript使用教程
  12. Matcher的group()/group(int group)/groupCount()用法介绍
  13. MATLAB绘制微分方程的相图/方向场/向量场
  14. Mycat跨库join实现方式总结
  15. 【流媒体服务】海康摄像头RTSP视频推流、转码、拉流、直播综合应用(六):【1】VLC+FFMPEG+Nginx实现RTSP到RTMP网页直播
  16. 量子力学的经典教材_我是亲民_新浪博客
  17. 交流电路有效值、最大值、平均值
  18. 2w 字长文带你搞懂 Linux 命令行
  19. 直线端点画垂线lisp_AutoCAD中利用AutoLISP开发小程序,实现快速画直线对称中心线...
  20. 记录用matlab APP中matlab coder的简单步骤

热门文章

  1. 数据库修复工具 - DatabaseCompressor 之从9M到900K+
  2. Sharepoint Server 2007结合AD RMS提高企业信息安全
  3. Cisco职业认证再认证体系及程序问答
  4. php nginx错误,PHP/Nginx错误(Win)
  5. mysql性能优化 洪斌_洪斌 - MySQL性能诊断与实践
  6. php做异地登录验证,PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
  7. springboot项目引入图片_SpringBoot实现上传图片功能
  8. android 弹窗圆角,Android开发笔记: Android最简单的圆角提示框
  9. java里frame颜色_如何为Java中的窗口(JFrame)添加颜色
  10. java 月度相减_java根据日期获取月龄,按照减法原理,先day相减,不够向month借;然后month相减,不够向year借;最后year相减。...