使用dda算法生成平行四边形
时间: 2023-05-11 17:04:49 浏览: 43
可以使用以下代码实现:
```
#include <graphics.h>
#include <iostream>
#include <cmath>
using namespace std;
void drawLine(int x1, int y1, int x2, int y2) {
int dx = x2 - x1;
int dy = y2 - y1;
int steps = abs(dx) > abs(dy) ? abs(dx) : abs(dy);
float xIncrement = dx / (float)steps;
float yIncrement = dy / (float)steps;
float x = x1, y = y1;
for (int i = 0; i <= steps; i++) {
putpixel(round(x), round(y), WHITE);
x += xIncrement;
y += yIncrement;
}
}
int main() {
int gd = DETECT, gm;
initgraph(&gd, &gm, "");
int x1 = 100, y1 = 100, x2 = 200, y2 = 100, x3 = 150, y3 = 200;
drawLine(x1, y1, x2, y2);
drawLine(x2, y2, x3, y3);
drawLine(x3, y3, x1, y1);
int x4 = x1 + (x2 - x1) + (x3 - x1);
int y4 = y1 + (y2 - y1) + (y3 - y1);
drawLine(x1, y1, x4, y4);
drawLine(x2, y2, x4, y4);
drawLine(x3, y3, x4, y4);
getch();
closegraph();
return 0;
}
```
这段代码使用 DDA 算法绘制了一个平行四边形。首先,我们定义了三个点 (x1, y1), (x2, y2), (x3, y3),然后使用 drawLine 函数绘制了三条边。接着,我们计算出第四个点的坐标 (x4, y4),并使用 drawLine 函数绘制了最后一条边。最终,我们得到了一个平行四边形。