C语言已知三角形三个顶点坐标计算三角形重心
时间: 2024-12-28 19:34:45 浏览: 5
在C语言中,计算三角形重心通常涉及到三维空间中的几何知识,因为如果你只给定二维平面的三个顶点坐标(x1, y1), (x2, y2), (x3, y3),我们可以先将每个顶点看作三维坐标的(0, 0, z),然后计算重心。重心公式如下:
重心(x, y) = ((x1 + x2 + x3)/3, (y1 + y2 + y3)/3)
如果这三个顶点都在同一平面上,那么z坐标对于重心计算可以忽略。下面是简单的步骤:
1. 初始化x_sum, y_sum为0,分别用于累加x和y坐标。
2. 计算每个顶点的x、y坐标,并添加到相应的总和。
3. 最后除以3得到重心的x和y坐标。
以下是C代码示例:
```c
#include <stdio.h>
// 函数声明
void calculateCentroid(float x1, float y1, float x2, float y2, float x3, float y3, float* centroid);
int main() {
float x1, y1, x2, y2, x3, y3;
printf("请输入三角形三个顶点的坐标(例如:1 1 2 2 3 3):");
scanf("%f %f %f %f %f %f", &x1, &y1, &x2, &y2, &x3, &y3);
float centroid[2]; // 只需要x,y两个分量
calculateCentroid(x1, y1, x2, y2, x3, y3, centroid);
printf("三角形重心坐标为: (%.2f, %.2f)\n", centroid[0], centroid[1]);
return 0;
}
// 计算重心函数
void calculateCentroid(float x1, float y1, float x2, float y2, float x3, float y3, float* centroid) {
*centroid[0] = (x1 + x2 + x3) / 3.0;
*centroid[1] = (y1 + y2 + y3) / 3.0;
}
```
阅读全文