DDA画线算法+代码详解-直线扫描算法之一

本文详细介绍了DDA直线扫描算法,包括公式推理、疑惑解答和代码验证。通过求斜率、处理不同斜率情况以及解决K值取绝对值的原因,阐述了如何在光栅显示器上逼近直线。还提供了代码示例和测试用例下载。
摘要由CSDN通过智能技术生成

#DDA画线算法+代码详解-直线扫描算法之一

本文目录结构如下

1、直线扫描算法简介
2、DDA直线扫描算法
2.1 公式推理
1、求斜率K:
2、当|K| <= 1 时
3、当|K| > 1 时
4、当|K|不存在时
2.2 疑惑解答
疑问一:当|K|>1 和 |K|<1,步进主方向为什么不一样
疑问二:K为什么要取绝对值,K<0 会怎样
3、代码验证及下载
3.1具体代码:
3.2 测试用例下载
3.3工程代码下载

1、直线扫描算法简介

在数学上直线是由无数个点组成,在光栅显示器上,用有限个逼近的像素点来表示直线,因此最终显示的屏幕上的也不是光滑的线。如图所示
在这里插入图片描述

2、DDA直线扫描算法

利用斜线方程: y = k x + b y=kx+b y=kx+b求每个逼近的像素点坐标,每个像素点坐标值都是整数并且不小于零

2.1 公式推理

已知起点P0(X0,Y0)和终点Pn(Xn,Yn),如图所示

B_A_2_2.jpg

1、求斜率K:

k = Y n − Y 0 X n − X 0 ( X n ≠ X 0 ) k=\frac{Yn-Y0}{Xn-X0} (Xn \neq X0)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值