#include <graphics.h>
#include <conio.h>
#include <iostream.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; else x += cx, d += d2; y += cy; putpixel(x, y, color);} }
}// 主函数
void main()
{// 输入起点和终点int x1,y1,x2,y2;cout<<"请输入起点:";cin>>x1>>y1;cout<<"请输入终点:";cin>>x2>>y2;x1=x1+250;y1=250-y1;x2=x2+250;y2=250-y2;//初始化屏幕大小initgraph(500, 500);// 测试画线Line_Midpoint(0, 250, 500, 250, RED);//x轴Line_Midpoint(250, 0, 250, 500, RED);//y轴Line_Midpoint(x1, y1, x2, y2, BLUE);// 按任意键退出getch();closegraph();
}

中点画线法(计算机图形学)相关推荐

  1. [计算机图形学算法]直线扫描转换算法-中点画线法

    DDA算法用斜截式表示直线方程,简化了乘法运算,但任存在浮点运算. 我们猜想,用别的方式表示直线,是否能把浮点运算也简化为整数运算. 在中点画线法中,我们用Ax+By+C=0的一般式方程来表示直线,即 ...

  2. 【计算机图形学】中点画线法实现任意斜率直线的绘制

    [计算机图形学]中点画线法实现任意斜率直线的绘制 一.中点画线法原理简介 1.建立基础 中点画线法的建立基础是数值微分画线法(DDA),其作为改进算法,沿用了DDA算法的增量思想,针对影响DDA算法效 ...

  3. 【计算机图形学】中点画线法实现焦点在x、y轴上的椭圆绘制

    [计算机图形学]中点画线法实现焦点在x.y轴上的椭圆绘制 一.中点画线法原理简介 1.建立基础 中点画线法的原理介绍见直线绘制的博文中点画线法实现任意斜率直线的绘制.基本思路是以下一点在椭圆外/内的位 ...

  4. 【计算机图形学|直线生成算法】中点画线法

    文章目录 概述 一.基本思想 二.构造判别式: 三.递推出增量 优化: 总结: 四.例题分析 五.伪代码 概述 中点画线法(Midpoint Line Algorithm)是一种画线(Line Dra ...

  5. 中点画线法c语言程序,计算机图形学 :中点画圆法

    由于安装了easyx的vc6.0只能用initgraph(x,y)初始化一个x*y的第一象限的画板.所以对于书上的画圆法我们需要稍微进行一点改变.这个算法只能画1/8的圆,其它7/8的圆只能通过对称关 ...

  6. 画毛毛虫代码计算机图形学,计算机图形学 实验 数值微分(DDA)法、中点画线法、Bresenham算法.doc...

    文档介绍: 实验名称数值微分(DDA)法.中点画线法.Bresenham算法实验时间年月日专业姓名学号预****操作座位号教师签名总评一.实验目的:1.了解数值微分(DDA)法.中点画线法.Brese ...

  7. 图形学--(中点画线法+Bresenham画线算法)

    编程环境:codeblocks+EGE库 用到的函数:putpixel(int x1,int y1,int color)  用某种颜色打亮一个坐标点. 这俩种算法都是用来在计算机上画一条直线的,那么我 ...

  8. 图形学---中点画线法---opengl中实现

    目的: 为了优化DDA算法中的浮点数运算(DDA中每次+k运算,|k|<1,所以存在浮点数运算),达到整数运算,提高效率. 基本思想: 当前像素点为(xp,yp),下一像素点为P1或P2.设P1 ...

  9. 【OpenGL C++】画一个空心汉字和一个圆,并填充汉字(中点画线法,中点画圆法,种子填充法)

    内容:画一个空心汉字和一个圆 设计一个画任意直线和圆的算法,可选所学的任一图形扫描转换算法(中点或bresenham算法),不能使用任何画线/画圆的API: 使用画线算法实现空心汉字的绘制,汉字必须为 ...

最新文章

  1. java socket 工具_java+socket 简易聊天工具
  2. 神奇的计算机技术 教案,神奇的笔记本教学设计
  3. linux 高级文件IO
  4. 如何在Java客户端调用RESTful服务
  5. 20161120-安全测试
  6. 怎么强制弹出窗口永远在最前面
  7. jsp(web作业)
  8. 华为海思芯片 10 年备胎史!
  9. mac下压缩mp3音频文件/linux 适用
  10. GNU Make 使用手册!
  11. 区块链和大数据的关系
  12. 【2020年天梯赛校选赛】7-16 愤怒的牛
  13. 【机器学习】横向联邦学习纵向联邦学习区别
  14. 【Python】关于安装爬虫框架scrapy的感悟
  15. 仿QQ相册RecyclerView滑动选中
  16. 【NKOJ-1021】佳佳的魔法照片
  17. 利用Flask动态展示Pyechats图表
  18. 脉脉林凡:职场社交突破点在于行业间的融合
  19. 最新php蓝奏云直链api接口源代码
  20. 【CSDN 2021 年度总结】半年涨粉11万,铁杵磨成针

热门文章

  1. cadence 17.2 入门学习3 allegro
  2. 电脑如何分盘、合盘?关于硬盘的分盘,你所不知道的那些事情
  3. java实现发送电子邀请函_电子邀请函的发展会怎样?
  4. rmm 一个替换rm 的工具
  5. VS 编译出现,LNK2005 连接错误解决办法
  6. 信源编码课程实验一:基于Audacity的浊音、清音和爆破音信号的时域及频域特性分析
  7. 20220413安装旧版本的百度网盘的方法
  8. 从控制台输入两个英文字母,输出这两个英文字母之间的所有的字母(包含大小写)
  9. 【数字IC/FPGA】门控时钟
  10. HBuilder git使用教程