多边形 放大算法 c++代码
时间: 2023-10-27 11:15:49 浏览: 86
多边形算法
以下是一个简单的多边形放大算法的C++代码实现:
```c++
#include <iostream>
#include <graphics.h>
#include <math.h>
using namespace std;
struct vertex {
int x, y;
};
void scale(vertex *v, int n, int sx, int sy) {
for (int i = 0; i < n; i++) {
v[i].x *= sx;
v[i].y *= sy;
}
}
void draw_polygon(vertex *v, int n) {
for (int i = 0; i < n; i++) {
line(v[i].x, v[i].y, v[(i + 1) % n].x, v[(i + 1) % n].y);
}
}
int main() {
int gd = DETECT, gm;
initgraph(&gd, &gm, "");
int n = 4; // 多边形边数
vertex v[] = {{100, 100}, {200, 100}, {200, 200}, {100, 200}}; // 多边形顶点坐标
draw_polygon(v, n); // 绘制原多边形
int sx = 2, sy = 2; // 放大倍数
scale(v, n, sx, sy); // 多边形放大
draw_polygon(v, n); // 绘制放大后的多边形
getch();
closegraph();
return 0;
}
```
上述代码使用了 `graphics.h` 库来绘制图形,在放大前绘制了原多边形,放大后绘制了放大后的多边形。`scale` 函数用来实现多边形的放大,根据给定的放大倍数对多边形顶点坐标进行计算。
阅读全文