形成一个求平面直角坐标系中三角形面积的c++代码
时间: 2023-03-20 09:00:54 浏览: 117
以下是一个求平面直角坐标系中三角形面积的C语言代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
float x1, y1, x2, y2, x3, y3, a, b, c, s, area;
printf("请输入三角形的三个顶点坐标(x1, y1), (x2, y2), (x3, y3):\n");
scanf("%f %f %f %f %f %f", &x1, &y1, &x2, &y2, &x3, &y3);
// 计算三边长度
a = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
b = sqrt(pow(x2 - x3, 2) + pow(y2 - y3, 2));
c = sqrt(pow(x3 - x1, 2) + pow(y3 - y1, 2));
// 计算半周长和面积
s = (a + b + c) / 2;
area = sqrt(s * (s - a) * (s - b) * (s - c));
printf("三角形的面积为: %.2f\n", area);
return 0;
}
```
该程序首先提示用户输入三角形的三个顶点坐标,然后通过坐标计算三边长度,接着计算半周长和面积,并将结果输出到屏幕上。
相关问题
C++语言求坐标系内三角形面积
下面是一个简单的 C++ 代码,可以计算坐标系内任意三角形的面积:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
double calc_triangle_area(double x1, double y1, double x2, double y2, double x3, double y3) {
double a = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
double b = sqrt(pow(x2 - x3, 2) + pow(y2 - y3, 2));
double c = sqrt(pow(x1 - x3, 2) + pow(y1 - y3, 2));
double p = (a + b + c) / 2;
double area = sqrt(p * (p - a) * (p - b) * (p - c));
return area;
}
int main() {
double x1, y1, x2, y2, x3, y3;
cout << "请输入三角形的三个顶点坐标(x1,y1), (x2,y2), (x3,y3):" << endl;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
double area = calc_triangle_area(x1, y1, x2, y2, x3, y3);
cout << "三角形的面积为:" << area << endl;
return 0;
}
```
这个程序会要求用户输入三个点的坐标,然后利用海伦公式计算三角形的面积,并输出结果。
7. 平面坐标系中如何快速求三角形面积
在平面直角坐标系中,假设三角形的三个顶点分别为A(x1, y1),B(x2, y2),C(x3, y3),则三角形的面积S可以通过以下公式求得:
S = |(x1y2+x2y3+x3y1) - (x1y3+x2y1+x3y2)| / 2
其中,|...|表示绝对值,即取其正值。
这个公式的推导过程可以用叉积来解释,即将向量AB和AC的叉积的绝对值除以2。具体来说,可以将向量AB和AC表示为:
AB = (x2-x1, y2-y1)
AC = (x3-x1, y3-y1)
则它们的叉积的绝对值即为:
|AB x AC| = |x1y2+x2y3+x3y1 - x1y3-x2y1-x3y2|
最后将其除以2即可得到三角形的面积S。
需要注意的是,这个公式只适用于顶点按照逆时针方向依次排列的三角形,如果顶点的排列顺序与此不一致,则可以通过将顶点任意两个相邻的顺序交换来满足此条件。