在网上看中点画线算法,很多说法是中点画线类似于Breshehanm画线。

但是助教说的中点画线是寻找直线两端点的中点进行画点,然后分别递归左右半段直线。

当年不好好学习,递归掌握的不好,现在自己试了试,可谓小费时。

代码如下:

/************中点画线***************/

void CDrawLine::DrawMPLine(CPoint a, CPoint b, CDC * pDC)

{

CPoint ptMiddle;

ptMiddle.x = (a.x + b.x) / 2;

ptMiddle.y = (a.y + b.y) / 2;

if((a.x - b.x)*(a.x - b.x) + (a.y - b.y)*(a.y - b.y) <= 2)

{

pDC->SetPixel(a.x, a.y, RGB(255, 0, 0));

}

else

{

DrawMPLine(a, ptMiddle, pDC);

DrawMPLine(ptMiddle, b, pDC);

}

}

风格不好,参数CDC * pDC是使用的OnDraw函数中的CDC指针,因为该函数只在OnDraw函数中调用了。

想要去掉该参数的话自己在函数体内部生命CDC指针,使用完后delete就行了。

中点画线完整算法c语言,中点画线算法相关推荐

  1. c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配

    #include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...

  2. c语言中有关随机数的程序,C语言中随机数相关问题

    用C语言产生随机数重要用到rand函数.srand函数.及宏RAND_MAX(32767),它们均在stdlib.h中进行了声明. int rand(void);//生成一个随机数 voidsrand ...

  3. Algorithm:C++语言实现之概率算法相关问题(计算机中的概率事件、C语言中的随机事件、产生二维随机数、圆内均匀取点)

    Algorithm:C++语言实现之概率算法相关问题(计算机中的概率事件.C语言中的随机事件.产生二维随机数.圆内均匀取点) 目录 一.概率 1.计算机中的概率事件 1.1.C语言中的随机事件 1.2 ...

  4. A13在c语言中是合法变量吗,C语言中局部变量和全局变量等在内存中的存放位置.doc-资源下载在线文库www.lddoc.cn...

    C语言中局部变量和全局变量_等在内存中的存放位置.doc C 语言中局部变量和全局变量 变量的存储类别static,extern,auto,register 8.8 局部变量和全局变量在讨论函数的形参 ...

  5. c语言中调整颜色的函数_C语言中的输入输出函数

    点击上方"学士科技",选择"设为星标" 技术干货第一时间送达! 01 字符数据输入输出 字符数据输出函数putchar() C语言中字符数据输出使用的是putc ...

  6. c语言中栈堆,全程剖析C语言中堆和栈的区别

    C语言中堆和栈的区别 1.申请方式 (1)栈(satck):由系统自动分配.例如,声明在函数中一个局部变量int b;系统自动在栈中为b开辟空间. (2)堆(heap):需程序员自己申请(调用mall ...

  7. c语言中占位符,Java C# C语言中的占位符

    一般拼接一段字符串在编程中是很常见的事,下面简单做个总结: 什么是占位符?占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号. 1.Java中处理方法: package com.amos; ...

  8. 妙趣横生的算法(c语言实现),妙趣横生的算法(C++语言实现) 带目录完整pdf[4MB]

    <妙趣横生的算法(C++语言实现)>内容丰富,生动有趣,寓教于乐,旨在帮助读者学习数据结构和算法的相关知识,从而开阔眼界,培养编程兴趣,提高编程能力,增强求职的竞争力.如果您想提高自己对算 ...

  9. c语言中非法使用void类型_C语言中的数据类型

    为什么需要介绍数据类型 学习语言编程,不用急着写代码,先搞懂基本概念.有了基本概念后,然后再考虑在不同的语言中是如何表达的.不同语言无非就是表达方式不一样而已,万变不离其宗. 每一门语言开始部分中总是 ...

  10. c语言中指针的类型,学习C语言中的指针类型

    摘要:结合我院学生十年来参加全国计算机等级考试(C语言部分)情况,通过分析成绩分布与题型关系,我们发现指针方面的题型失分率最高.在此基础上结合教学实际,本文提出学习指针知识的方法和顺序过程,并将其应用 ...

最新文章

  1. #define CV_DEFAULT(val) = val 这样的宏定义是没有问题的~
  2. LCD正向扫描和反向扫描
  3. 我的javaweb学习之旅--html常用块级标签
  4. 《看聊天记录都学不会C语言?太菜了吧》(12)循环有多容易?你看一眼就怀...
  5. AT4437-[AGC028C]Min Cost Cycle【结论,堆】
  6. 使用可自定义的定期计划自动执行数据库备份
  7. 用jquery给Struts2的s:radio /标签添加change事件
  8. win11如何设置始终以管理员身份运行 windows11设置始终以管理员身份运行的方法步骤
  9. 每日一技|巧用 Telnet 调试 Dubbo 服务
  10. markdown emoji表情代码
  11. 自研返利网源码、有需要的私信
  12. php 项目反应理论,科学网—好文 | 纽约石溪大学:机器学习中基于项目反应理论的集成学习 - 陈培颖的博文...
  13. dellr710服务器添加硬盘步骤,DELL R710服务器在线扩硬盘
  14. ML-czy的小组任务2
  15. 机器学习(回归二)——线性回归-最小二乘-代码实现
  16. Linux -- SELinux配置及应用(1)
  17. 中国非正常死亡最高的行业 TOP 10
  18. 车辆清洗系统-全自动洗车机-龙门清洗系统-自助洗车系统-自动洗车机解决方案
  19. 腾讯云4核8G服务器S5.LARGE8性能测评
  20. 《Python深度学习》读书笔记

热门文章

  1. @Valid对页面传参的校验问题
  2. MOBA类和“吃鸡”游戏为什么对网络延迟要求高?
  3. 122、影响爆炸极限的因素
  4. backurl使用,登录后跳转回当前页
  5. 用python的tkinter做游戏(八)—— 实现图片在tkinter中自适应大小(自动匹配窗口)
  6. Java程序出现不正常情况
  7. SkeyeVSS综合安防监控Onvif、RTSP、GB28181视频云无插件直播点播解决方案之监控视频实时多屏预览
  8. win11一开机就显示“无法打开这个应用,查看Microsoft store,了解有关Nahimic的详细信息”怎么解决?
  9. 实验五 java gui(预习报告)
  10. iphone输入法换行_iphone打字怎么换行?iphone输入法换行教程