资源简介
DDA直线插补matalb实现,带左移规格化处理,插补效果更好,更加便于速度规划。
代码片段和文件信息
%DDA数字积分法插补:
%(xsys)起点坐标
%(xeye)起点坐标
%buffBitWidth 寄存器位宽
%base 基准:1全加载 2半加载 其他 普通
function DDA_Line2()%(xsys xeye buffBitWidth base)
%clc
close all
clear all
global x y speed;
%global x y m speed steplengh base zuo;
%初始化参数------------------------------
speed=0.01; %speed of running插补速度.
xs =0; % x start point x起始点
ys =0; % y start point y起始点
xe =1005; % x end point x终点
ye =1003; % y end point y终点
buffBitWidth=16;%寄存器位数
zuo=1;%左移偏置开关 1 开 0 关
base=1;%是否全加载1全加载 2半加载 其他 普通
steplengh=1;%步长设置
%理论曲线绘制-----------------------------
grid on;
plot([xsxe][ysye]‘r-‘);hold on;
title(‘DDA直线插补图像‘);
xlabel(‘x‘);
ylabel(‘y‘);
% main part--------------------------------------------
if (xe-xs)>0
xdir = 1;
else
xdir = -1;
end
if (ye-ys)>0
ydir = 1;
else
ydir = -1;
end
jx0 = abs(xe-xs);
jy0 = abs(ye-ys);
if(zuo)%进行左移规格化操作
while(jx0&&jy0<=(0.5*2^buffBitWidth))
jx0=2*jx0;
jy0=2*jy0;
end
end
switch base
case 1
jx=2^buffBitWidth;
jy=2^buffBitWidth;
case 2
jx=0.5*2^buffBitWidth;
jy=0.5*2^buffBitWidth;
otherwise
jx=0;
jy=0;
end
x=xs;
y=ys;
xplus = abs(xe-xs);
yplus = abs(ye-ys);
output(xsys); % move to start point.
while(xplus>0 || yplus>0)
jx=jx0+jx;
jy=jy0+jy;
if jx > 2^buffBitWidth&&jy>2^buffBitWidth
xstep = redo(xplus steplengh);
ystep = redo(yplus steplengh);
output(xdir*xstep ydir*ystep);
x = x+xdir*xstep;
y = y+ydir*ystep;
xplus=xplus-xstep;
yplus=yplus-ystep;
jx=jx-2^buffBitWidth;
jy=jy-2^buffBitWidth;
end
if jx>2^buffBitWidth&&jy<2^buffBitWidth
xstep = redo(xplus steplengh);
output(xdir*xstep 0);
x = x+xdir*xstep;
xplus=xplus-xstep;
jx=jx-2^buffBitWidth;
end
if jx<2^buffBitWidth&&jy>2^buffBitWidth
ystep = redo(yplus steplengh);
output(0 ydir*ystep);
y = y+ydir*ystep;
yplus=yplus-ystep;
jy=jy-2^buffBitWidth;
end
end
end
function output(dxdy)
global x y speed;
xi=x;
yi=y;
xj=x+dx;
yj=y+dy;
%if(dx)
% dx=dx
% disp(‘output‘)
%end
plot([xixj][yiyj]‘b-‘);hold on;
pause(speed);
end
function step = redo(data n)
if(data>0)
step=n;
else
step=0;
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2925 2018-11-06 20:45 DDA_Line2.m
----------- --------- ---------- ----- ----
2925 1
- 上一篇:实现对占空比的随时可调代码
- 下一篇:RSA非对称加密
相关资源
- 用于已知卫星坐标的定位
- 支持向量机参数优化.rar
- LDPC仿真曲线.zip
- ofdm系统仿真程序
- lms自适应波束形成算法源代码
- 谱聚类算法对图像进行分割
- 基于蒙特卡罗法2FSK系统抗噪声性能仿
- 莱斯衰落信道仿真
- K-modes算法 随机类中心
- 无线通信系统仿真
- 自适应波束形成的基本程序
- BCH编译码MALAB
- QPSK卷积码程序
- lombscargle.m
- 鲁棒控制在飞翼无人机控制律设计中
- 瑞利莱斯对数正态分布仿真
- OFDM频偏估计算法的仿真
- 基于NavieBayes的adaboost算法实现
- 嵌入式零树小波图像编码算法
- fm_gui_v2.zip
- PSOT粒子群算法工具箱
- lmd程序
- 信号DCT字典稀疏表示
- LPCC的编程代码.docx
- 高斯分布来建立背景模型
- 现代信号处理教程_胡广书随书光盘
- 2D Fast Marching Computations
- 序贯蒙特卡洛可靠性评估.rar
- 基于DCT变换的数字水印算法
- 粒子群算法(pso)标准测试函数验证
评论
共有 条评论