#include<graphics.h> //头文件
#include<conio.h>
#include<stdio.h>
#include<math.h>
#define pi 3.1415926
#define fm 35
#define dt 0.001
#define np 51
float a[100]={0};
float w[100]={0};
int k;
// 使用 Bresenham 算法画任意斜率的直线(包括起始点,不包括终止点)
void Line_Bresenham(float x1, float y1, float x2, float y2, int color)
{
int x = x1;
int y = y1;
int dx = abs(x2 - x1);
int dy = abs(y2 - y1);
int s1 = x2 > x1 ? 1 : -1;
int s2 = y2 > y1 ? 1 : -1;
bool interchange = false; // 默认不互换 dx、dy
if (dy > dx) // 当斜率大于 1 时,dx、dy 互换
{
int temp = dx;
dx = dy;
dy = temp;
interchange = true;
}
int p = 2 * dy - dx;
for(int i = 0; i < dx; i++)
{
putpixel(x, y, color);
if (p >= 0)
{
if (!interchange) // 当斜率 < 1 时,选取上下象素点
y += s2;
else // 当斜率 > 1 时,选取左右象素点
x += s1;
EasyX+VC6.0下绘制雷克子波,Bresenham算法
最新推荐文章于 2022-12-08 17:51:49 发布
![](https://img-home.csdnimg.cn/images/20240611030827.png)