求大佬解答,在C语言中这一小段程序的意思是什么呢?delta_x = float(1.0*dx / steps); delta_y = float(1.0*dy / steps);

0

运行环境 : C++ 6.0

我在网上看到其他大佬写的,DDA算法的图形仿真,

求大佬解答一下,这两小段程序是什么意思呢?

主要是这个delta_x和delta_y

delta_x = float(1.0*dx / steps); 

delta_y = float(1.0*dy / steps);

#include<stdio.h>
#include<graphics.h>
#include<math.h>
#include<conio.h>
void DDA(float x1, float y1, float x2, float y2)
//x1,y1起始点,x2,y2终止点
{
	int i, steps;
	int x0 = 400, y0 = 300;              //坐标轴原点
	float x, y, delta_x, delta_y, dx, dy;
	dx = x2 - x1;
	dy = y2 - y1;
	if (fabs(dx) >= fabs(dy))
		steps = fabs(dx);
	else
		steps = fabs(dy);
	delta_x = float(1.0*dx / steps);        
	delta_y = float(1.0*dy / steps);
	x = x1;
	y = y1;
	putpixel((x + x0), (y0 - y), RED);        //开始第一个点的描绘
	for (i = 1; i <= steps; i++) 
	{
		x = x + delta_x;
		y = y + delta_y;
		putpixel((x + x0), (y0 - int(y + 0.5)), RED);        //y+0.5四舍五入运算
		Sleep(50);                                          //两个点间隔50毫秒
	}
}

ava
无名氏

2021-6-1

0

不要尝试通过代码还原作者的意思。你需要看 DDA 的算法描述,然后再结合代码看。

ava
慢羊羊

2021-6-1

技术讨论社区