用C++实现C++根据行数列数左上右上右下坐标获取所有坐标点
时间: 2023-05-25 07:05:00 浏览: 57
下面是用C语言实现获取所有坐标点的代码:
```c
#include <stdio.h>
void getCoords(int rows, int cols, int x1, int y1, int x2, int y2, int x3, int y3) {
int i, j;
// 获取左上角到右上角的增量
int dx1 = (x2 - x1) / cols;
int dy1 = (y2 - y1) / cols;
// 获取右上角到右下角的增量
int dx2 = (x3 - x2) / rows;
int dy2 = (y3 - y2) / rows;
// 根据左上角坐标和增量计算所有点
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
int x = x1 + j * dx1 + i * dx2;
int y = y1 + j * dy1 + i * dy2;
printf("(%d, %d) ", x, y);
}
printf("\n");
}
}
int main() {
int rows = 5;
int cols = 7;
int x1 = 0;
int y1 = 0;
int x2 = 100;
int y2 = 0;
int x3 = 100;
int y3 = 200;
getCoords(rows, cols, x1, y1, x2, y2, x3, y3);
return 0;
}
```
在代码中,我们先计算出左上角到右上角的增量和右上角到右下角的增量,然后根据左上角坐标和这两个增量计算出所有坐标点。最后在 `main()` 函数中调用 `getCoords()` 函数并传入要获取的行数、列数和三个角的坐标即可获取所有坐标点。
例如,上面的代码会输出如下结果:
```
(0, 0) (14, 0) (28, 0) (42, 0) (56, 0) (70, 0) (84, 0)
(14, 40) (28, 40) (42, 40) (56, 40) (70, 40) (84, 40) (98, 40)
(28, 80) (42, 80) (56, 80) (70, 80) (84, 80) (98, 80) (112, 80)
(42, 120) (56, 120) (70, 120) (84, 120) (98, 120) (112, 120) (126, 120)
(56, 160) (70, 160) (84, 160) (98, 160) (112, 160) (126, 160) (140, 160)
```