打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[图形学] 画任意斜率的直线(基于直线的中点算法)
///////////////////////////////////////////////////// 程序名称:基于中点算法画任意斜率的直线// 编译环境:Visual C++ 6.0 / 2010,EasyX 2011惊蛰版// 作  者:yangw80 <yw80@qq.com>// 最后修改:2011-4-26//#include <graphics.h>#include <conio.h>// 使用中点算法画任意斜率的直线(包括起始点,不包括终止点)void Line_Midpoint(int x1, int y1, int x2, int y2, int color){int x = x1, y = y1;int a = y1 - y2, b = x2 - x1;int cx = (b >= 0 ? 1 : (b = -b, -1));int cy = (a <= 0 ? 1 : (a = -a, -1));putpixel(x, y, color);int d, d1, d2;if (-a <= b)		// 斜率绝对值 <= 1{d = 2 * a + b;d1 = 2 * a;d2 = 2 * (a + b);while(x != x2){if (d < 0)y += cy, d += d2;elsed += d1;x += cx;putpixel(x, y, color);}}else				// 斜率绝对值 > 1{d = 2 * b + a;d1 = 2 * b;d2 = 2 * (a + b);while(y != y2){if(d < 0)d += d1;elsex += cx, d += d2;y += cy;putpixel(x, y, color);}}}// 主函数void main(){initgraph(640, 480);// 测试画线Line_Midpoint(100, 1, 1, 478, GREEN);Line_Midpoint(1, 478, 638, 1, GREEN);// 按任意键退出getch();closegraph();}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Bresenham直线算法与画圆算法 (转)
如何判断两条直线是否相交
中点画线算法
139.图形法绘制圆
基于C语言实现的贪吃蛇游戏完整实例代码
上海2016年数学试卷(理工类)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服