物流配送库容量计算例题,物流配送库容量计算例题及解析
本篇文章给大家谈谈物流配送库容量计算例题,以及物流配送库容量计算例题及解析对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享物流配送库容量计算例题的知识,其中也会对物流配送库容量计算例题及解析进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
1、dda算法例题?
这次我们要学的是直线的生成算法。
**
简单来说就是画一条从(x1, y1)到(x2, y2)的直线,实质上是一个发现最佳逼近直线的像素序列,并填入色彩数据的过程。这过程也称为直线光栅化。
直线光栅化,首先我们要保证三个特点:
连续性
粗细、亮度要均匀
像素逼近待画直线
直线的生成算法
步骤:
先要确定像素序列→确定像素点的坐标
我们先来看看最常见的方法:
DDA算法(数字微分分析式算法)
1、首先设(x1, y1)和(x2, y2)分别为所求直线的起点和终点坐标
然后分别设x的增量和y的增量
dx=(x2-x1)
dy=(y2-y1)
2、dy为y的增量,dx为x的增量,那么直线的斜率m为
然后又因为直线中每一点坐标可由前一点坐标变化一个增量(Dx,Dy),所以我们又可以得到:
3、接着,我们要比较x2- x1和y2 - y1,选择其中较大者,作为点前进的方向(假设x2- x1较大)
取该方向上的增量为一个像素单位(Dx=1)
然后利用公式计算另一个方向的增量(Dy=Dx·m=m)。
通过递推公式,把每次计算出的
经取整后输出,则可生成直线。
接着我们来看下代码:
#include lt;graphics.hgt; // 就是需要引用这个图形库 #include lt;conio.hgt; void DDA(int x1,int y1,int x2,int y2); void main() { initgraph(500, 500); //窗口大小 DDA(0,0,300,500); getch(); // 按任意键继续 closegraph(); // 关闭图形界面 } void DDA(int x1,int y1,int x2,int y2) { double m=0.0; int dx=x2-x1; int dy=y2-y1; double x=0.0,y=0.0; if(dx!=0) { m=(double)dy/dx; if(mlt;=1) { y=(double)y1; for(x=(double)x1;xlt;=x2;x ) { putpixel((int)x,(int)y 0.5,WHITE); y =m; } } else { x=x1; m=1/m; for(y=y1;ylt;=y2;y ) { putpixel((int)x 0.5,y,WHITE); x =m; } } } else { x=x1; for(y=y1;y1lt;=y2;y ) { putpixel(x,y,WHITE); } } }
2.1.1 生成直线的DDA算法
nbsp; 数值微分法即DDA法(Digital Differential Analyzer),是一种基于直线的微分方程来生成直线的方法。
nbsp;一、直线DDA算法描述:
nbsp; 设(x1,y1)和(x2,y2)分别为所求直线的起点和终点坐标,由直线的微分方程得
= m =直线的斜率
(2-1)
nbsp; 可通过计算由x方向的增量△x引起y的改变来生成直线:
xi 1=xi △x
(2-2)
yi 1=yi △y=yi △x·m
(2-3)
nbsp; 也可通过计算由y方向的增量△y引起x的改变来生成直线:
yi 1=yi △y
(2-4)
xi 1=xi △x=xi △y/m
(2-5)
nbsp; 式(2-2)至(2-5)是递推的。
到此,以上就是小编对于物流配送库容量计算例题的问题就介绍到这了,希望介绍关于物流配送库容量计算例题的1点解答对大家有用。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:3801085100#qq.com,#换成@即可,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.hc76.cn/wlps/45310.html