java实现梁友栋裁剪算法_梁友栋裁剪算法
梁友栋裁剪算法
用任意颜色绘制窗口,并用一种颜色绘制线段,利用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实现梁友栋裁剪算法_梁友栋裁剪算法相关推荐
- java常见的hash算法_常见的哈希算法和用途
写在前面 哈希算法经常会被用到,比如我们Go里面的map,Java的HashMap,目前最流行的缓存Redis都大量用到了哈希算法.它们支持把很多类型的数据进行哈希计算,我们实际使用的时候并不用考虑哈 ...
- java 寻路算法_游戏中的寻路算法解析
游戏角色的自动寻路,已经是游戏中一个历史比较悠久的领域,较为成熟也有很多种实现.这里摘录一句后面所提的参考资料中的描述:"业内AI开发者中有一句话:"寻路已不是问题."我 ...
- k均值算法 二分k均值算法_如何获得K均值算法面试问题
k均值算法 二分k均值算法 数据科学访谈 (Data Science Interviews) KMeans is one of the most common and important cluste ...
- ios笔试题算法_微软笔试题-Dijkstra算法
Dijkstra算法是典型的算法.Dijkstra算法是很有代表性的算法.Dijkstra一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN, CLOSE表的方式,这里均采用永久和临 ...
- 斗牛怎么玩法算法_游戏开发中的算法
游戏技术这条路,可深可浅.你可以满足于完成GamePlay玩法层面的东西,你也可以满足于架构和框架设计层面的东西,你也可以醉心于了解某一游戏引擎带来的掌控感.但是,我们不该止步于此,止步与目前所见或所 ...
- 图像 异常检测算法_检测图像异常的算法
图像 异常检测算法 Modern applications are generating enormous amounts of image data. And in the last years, ...
- 最小径集的算法_机器学习的利器——集成算法
最近在打算法竞赛的时候用到了集成算法,效果还不错,索性就总结了一篇集成算法的文章,希望能帮到正在转行的数据分析师们. 集成算法核心思想 集成算法的核心思想是通过构建并结合多个学习器来完成学习任务,也就 ...
- 标签传播算法_复杂网络社区发现算法汇总
社区发现 这篇文章汇总了一些常见的社区发现概念和算法,包括 Modularity Q Fast Unfolding(Louvain Algorithm) LPA SLPA KL算法 GN算法 社区: ...
- 图像重建算法_基于深度学习图像重建算法(DLIR)对CT图像质量和剂量优化的研究:体模实验...
编者按:今年Joël Greffier博士等在European Radiology (IF 4.1)上发表了题为<Image quality and dose reduction opportu ...
最新文章
- 不要抱怨,勇敢向前走,你就能拥有更好的自己
- 提高SQL的查询效率
- Tensorflow遇到的问题InvalidArgumentError: Graph execution error:2 root error(s) found.解决方法
- 聊聊引用和 ThreadLocal 那些事儿
- 对窗口过程函数WndProc()的一点理解
- 在 VS Code 中轻松 review GitHub Pull Requests
- ora28500 mysql_Oracle使用 ODBC+DBLINK 访问 Mysql
- (原创)3.2 AddOwner和OverrideMetadata的区别
- 大数据学习笔记02:在私有云上创建与配置虚拟机
- java用户输入_如何用Java获取用户输入?
- MonkeyScript使用教程
- Matcher的group()/group(int group)/groupCount()用法介绍
- MATLAB绘制微分方程的相图/方向场/向量场
- Mycat跨库join实现方式总结
- 【流媒体服务】海康摄像头RTSP视频推流、转码、拉流、直播综合应用(六):【1】VLC+FFMPEG+Nginx实现RTSP到RTMP网页直播
- 量子力学的经典教材_我是亲民_新浪博客
- 交流电路有效值、最大值、平均值
- 2w 字长文带你搞懂 Linux 命令行
- 直线端点画垂线lisp_AutoCAD中利用AutoLISP开发小程序,实现快速画直线对称中心线...
- 记录用matlab APP中matlab coder的简单步骤
热门文章
- 数据库修复工具 - DatabaseCompressor 之从9M到900K+
- Sharepoint Server 2007结合AD RMS提高企业信息安全
- Cisco职业认证再认证体系及程序问答
- php nginx错误,PHP/Nginx错误(Win)
- mysql性能优化 洪斌_洪斌 - MySQL性能诊断与实践
- php做异地登录验证,PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
- springboot项目引入图片_SpringBoot实现上传图片功能
- android 弹窗圆角,Android开发笔记: Android最简单的圆角提示框
- java里frame颜色_如何为Java中的窗口(JFrame)添加颜色
- java 月度相减_java根据日期获取月龄,按照减法原理,先day相减,不够向month借;然后month相减,不够向year借;最后year相减。...