C语言实现二维平面散点图绘制
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#define WIDTH 80
#define HEIGHT 40
// 数据结构表示一个点
typedef struct {
int x;
int y;
bool flag;
} Point;
// 初始化点集
void initializePoints(Point* points, int size) {
memset(points, 0, sizeof(Point) * size);
}
// 添加一个点
void addPoint(Point* points, int x, int y, bool flag) {
int i = 0;
while (points[i].flag && i < HEIGHT * WIDTH) {
i++;
}
if (i < HEIGHT * WIDTH) {
points[i].x = x;
points[i].y = y;
points[i].flag = flag;
}
}
// 根据点集绘制二维图
void drawGraph(Point* points, int size) {
char graph[HEIGHT][WIDTH];
memset(graph, ' ', sizeof(graph));
for (int i = 0; i < size; i++) {
if (points[i].flag) {
int x = points[i].x + WIDTH / 2;
int y = HEIGHT / 2 - points[i].y;
if (x >= 0 && x < WIDTH && y >= 0 && y < HEIGHT) {
graph[y][x] = 'o';
}
}
}
for (int i = 0; i < WIDTH + 2; i++) {
printf('-');
}
printf('
');
for (int i = 0; i < HEIGHT; i++) {
printf('|');
for (int j = 0; j < WIDTH; j++) {
printf('%c', graph[i][j]);
}
printf('|\n');
}
for (int i = 0; i < WIDTH + 2; i++) {
printf('-');
}
printf('
');
}
int main() {
Point points[27]; // 存储27个点的数组
initializePoints(points, 27); // 初始化点集
// 添加27个点的坐标信息
addPoint(points, -1080, 855, true);
addPoint(points, -780, 955, true);
addPoint(points, -1030, 425, true);
addPoint(points, -1185, -120, true);
addPoint(points, -300, 650, true);
addPoint(points, -335, 120, true);
addPoint(points, -140, -325, true);
addPoint(points, 115, 545, true);
addPoint(points, -460, -432, true);
addPoint(points, 410, -220, true);
addPoint(points, 230, -730, true);
addPoint(points, 665, -495, true);
addPoint(points, 1210, -560, true);
addPoint(points, 980, -870, true);
addPoint(points, 1080, -170, true);
addPoint(points, 1355, -35, true);
addPoint(points, 805, -135, true);
addPoint(points, 1340, 1010, true);
addPoint(points, 1100, 715, true);
addPoint(points, 1530, 490, true);
addPoint(points, 1415, 235, true);
addPoint(points, 990, -385, true);
addPoint(points, 690, 265, true);
addPoint(points, 1045, 250, true);
addPoint(points, 1535, -390, true);
addPoint(points, 245, 175, true);
addPoint(points, -250, -800, true);
drawGraph(points, 27); // 绘制二维图
return 0;
}
原文地址: https://www.cveoy.top/t/topic/ptC 著作权归作者所有。请勿转载和采集!