中点画线完整算法c语言,中点画线算法

article/2025/1/16 15:44:37

在网上看中点画线算法,很多说法是中点画线类似于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就行了。

0818b9ca8b590ca3270a3433284dd417.png


http://chatgpt.dhexx.cn/article/2Ig6Hwkl.shtml

相关文章

图文详解超五类网线的接法

如何做网线&#xff1f;如何检测网线是否做好&#xff1f;详见网线及网络水晶头接法图解网线如五类&#xff0c;超五类网线和六类被广泛用于企业网络、数据中心网络或者家庭网络中&#xff0c;越来越多的网线类型正逐渐被发明出来&#xff0c;它们可以支持不同的传输距离和应用…

地图制图小技巧_点匹配线方向

目录 目的 实现步骤 功能介绍 功能入口 关键参数 结果 问题延伸 目的 我们在配图的时候&#xff0c;会遇到一种特定的需求&#xff1a;需要对点设置一个风格&#xff0c;并且符号风格自动跟相连或者相交的线保持垂直。 这种是否能够在SuperMap iDesktopX中自动实现呢&#xff0…

4.点与线

点与线 常用方法 glBegin与glEnd OpenGL的图元绘制放在函数glBegin和glEnd之间&#xff0c;由函数glBegin的参数指定绘制图元的类型。 结构类似于: glBegin(XXXXXX);xxxxxxxxxxxxxxglEnd();其中&#xff0c;glBegin后可填参数&#xff0c;来确定要绘制的图元类型 模式图元类…

图解24种经典k线图

相信不少国内的老股民心中都藏着一份经典的K线图图解&#xff0c;当中也许有6种、12种或24种能揭示行情方向转变的“K线脸谱”&#xff0c;借由它们的对行情的预知作用&#xff0c;股民度过一次又一次的熊牛更替。其实只要善于变通&#xff0c;它们同样适用于贵金属投资&#x…

直线绘制算法-中点画线法

之前讲过用数值积分法(DDA)进行直线逼近&#xff0c;通过向下取整获取目标像素点。计算过程中每一次都需要加0.5这一浮点数&#xff0c;浮点数运算效率相比整数运算效率低的多&#xff0c;因此需要对此进行改进。 一.中点画线法 直线方程式通过一般式表示&#xff1a;&#x…

3分钟看懂五日均线图!最实用的五日均线图解教程!

3分钟看懂五日均线图&#xff01;最实用的五日均线图解教程&#xff01; 均线并不是技术环境分析的全部内容&#xff0c;但无疑是技术环境中不可或缺的重要组成部分。均线代表的是市场平均成本运行趋势&#xff0c;其重要性在于反映现行价格得到支撑或受到压制的情况&#xff…

连连看(四)

Python3 实现QQ游戏连连看游戏辅助 连连看&#xff08;零&#xff09;—— 前记连连看&#xff08;一&#xff09;—— 你看&#xff0c;这是截图啊连连看&#xff08;二&#xff09;—— 哦吼&#xff0c;PIL CV2 Numpy 假图像识别构建矩阵连连看&#xff08;三&#xff09…

java基础2

1、mysql语句执行顺序 from on join where group by having select distinct union order by 我们看到on是在join和where前面的 如果两张表的数据量都比较大的话&#xff0c;那样就会占用很大的内存空间这显然是不合理的。所以&#xff0c;我们在进行表连接查询的时候一般都会…

机器学习基础知识点

机器学习基础知识点 文章目录 机器学习基础知识点监督学习回归线性回归岭回归lasso回归 分类k最近邻分类朴素贝叶斯分类logistic回归支持向量机 其他随机梯度下降线性判别分析决策树 无监督学习聚类k均值分层次聚类谱聚类高斯混合模型 降维PCA降维LLE降维MDS和t-SNE独立成分分析…

文本三剑客——awk 截取+过滤+统计

目录 一、awk是什么&#xff1f; 1、GNU是什么&#xff1f; 2、相关命令选项 3、awk有什么用 4、awk用在哪里 二、awk 命令的简要处理流程 1、分隔符 三、awk命令的内置变量 四、awk命令的完整语法 1、格式 2、 awk 中 gsub和tr命令的使用 1、gsub&#xff1a;替换 …

安卓APP——基础控件

目录 一、4种基础控件二、padding和margin三、制作一个登录界面 一、4种基础控件 Button 按键TextView 文本框EditText 输入框ImageView 图片&#xff0c;带边框的 <ImageButton android:layout_width"wrap_content"android:layout_height"wrap_content&qu…

现场编程

目录 组员职责分工github 的提交日志截图程序运行截图程序运行环境GUI界面基础功能实现运行视频 LCG算法过滤&#xff08;降权&#xff09;算法 算法思路红黑树附加功能一 背景实现附加功能二&#xff08;迭代中&#xff09;附加功能三 背景引言解决方法实现效果效果截图遇到的…

iOS之富文本总结

文章内容大纲 1、NSMutableAttributedString的基本使用2、NSMutableAttributedString的简易封装3、使用开源代码GOBMarkupPaser处理富文本4、UITextKit简介5、编程思想的相关思考 前言 富文本使用案例&#xff1a; 这里我自己也用了富文本实现了简单的却也是常用的例子&#xf…

【读书笔记《Android游戏编程之从零开始》】20.游戏开发基础(游戏数据存储)...

对于数据的存储&#xff0c;Android 提供了4种保存方式。 (1)SharedPreference 此方法适用于简单数据的保持&#xff0c;文如其名&#xff0c;属于配置性质的保存&#xff0c;不适合比较大的情况&#xff0c;默认存放在手机内存里 (2)FileInputStream/FileOutputStream 此方式比…

Demo06-GUI编程

GUI编程 1. 简介 GUI的核心技术&#xff1a;Swing AWT 2. AWT 2.1 Awt 介绍 awt 指抽象的窗口工具&#xff0c;包含了很多类和接口&#xff0c;用于GUI编程&#xff1a;图形用户界面编程元素&#xff1a;窗口&#xff0c;按钮&#xff0c;文本框java.awt [外链图片转存失…

【Java基础】语法基础

本文适合有编程基础或是需要Java语言复习的家人们食用~ 一、Java语言介绍 本篇文章使用的JDK版本是1.8&#xff08;即JDK 8&#xff09;Java语言是运行在JVM上的&#xff0c;有了JVM&#xff0c;Java语言得以在不同操作系统上运行垃圾回收机制&#xff1a;Java语言提供了一种…

编程算法集锦

编程算法集锦 一、分治法1.分治法介绍2.归并排序3.快速排序4.中值问题 二、贪心法1.贪心法2.最小生成树Kruskal算法3.Huffman编码4.单源点最短路径 三、回溯法1.回溯法-n皇后问题2.子集和数 四、动态规划1.数塔问题2.最长公共子序列3.求序列-2 11 -4 13 -5 -2的最大字段和4.求最…

富文本的使用 NSMutableAttributedString

文章内容大纲 1、NSMutableAttributedString的基本使用2、NSMutableAttributedString的简易封装3、使用开源代码GOBMarkupPaser处理富文本4、UITextKit简介5、编程思想的相关思考 前言 富文本使用案例&#xff1a; 这里我自己也用了富文本实现了简单的却也是常用的例子&#x…

iOS 开发 富文本

http://www.itnose.net/detail/6177538.html 文章内容大纲 1、NSMutableAttributedString的基本使用2、NSMutableAttributedString的简易封装3、使用开源代码GOBMarkupPaser处理富文本4、UITextKit简介5、编程思想的相关思考 前言 富文本使用案例&#xff1a; 这里我自己也用…

软工第三次作业-结对编程

结对项目-最长英语单词链 哈哈&#xff0c;这次记住了&#xff0c;来&#xff0c;初始化&#xff01; 项目内容这个作业属于哪个课程2023年北航敏捷软件工程社区这个作业的要求在哪里结对项目-最长英语单词链我在这个课程的目标是学习软件开发的原则、方法&#xff0c;并对敏捷…