社区
C++ 语言
帖子详情
给三个坐标 计算三角形面积有没有好点的算法
jacky_ji
2005-10-30 01:06:20
RT 给坐标(a,b)(c,d)(e,f) 算构成的三角形面积
我是想先算三根线长 在判断是否构成三角形 之后在用公式计算面积
但给三根线算长度太复杂了 有没有比较好点的算法 比如SIN 或者 点到直线距离.....
...全文
2492
12
打赏
收藏
给三个坐标 计算三角形面积有没有好点的算法
RT 给坐标(a,b)(c,d)(e,f) 算构成的三角形面积 我是想先算三根线长 在判断是否构成三角形 之后在用公式计算面积 但给三根线算长度太复杂了 有没有比较好点的算法 比如SIN 或者 点到直线距离.....
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
寻开心
2005-10-31
打赏
举报
回复
对于一个简单的多边形,顶点坐标时 Pi(xi,yi)
那么他的面积就是
. 1 |x1 y1| |x2 y2| |xn yn|
. s = - { | | + | | + ...... + | | }
. 2 |x2 y2| |x3 y3| |x1 y1|
s大于0时表示顶点是逆时针顺序, s小于0的时候表示的是顺时针的顺序
三角形当然也适用上面的法则
百分百好牛
2005-10-31
打赏
举报
回复
俺已经完蛋了.
叉乘的公式忘了.
:(
谁贴出来先.
谢谢
xiaocai0001
2005-10-30
打赏
举报
回复
你的更好, 指的是什么呢?
根据哪些条件, 得到面积
你现在的只有三个点的坐标.
用海伦公式应该是比较好的啊
要不, 你就算出AB直线的解析式, 然后求出C到AB直线的距离, 再用S=底*高/2 来计算面积
这个方法也不简单啊~
jacky_ji
2005-10-30
打赏
举报
回复
谢谢xiaocai0001 这两个公式我知道 我是想请问一下 是否有更好的算法
jacky_ji
2005-10-30
打赏
举报
回复
基本搞定了hkbpro(UT2004)的方法比较OK 后面那位朋友的方法和hkbpro(UT2004)相同 不过我是用类做的 网上我找到了那集训题 看看还不错
xiaocai0001
2005-10-30
打赏
举报
回复
海伦公式:
L = (a+b+c)/2
S = sqrt(L*(L-a)*(L-b)*(L-c))
正弦公式
S = (1/2)*a*b*sinα (α是a,b两线夹角)
drizzlecrj
2005-10-30
打赏
举报
回复
用两个向量叉乘的模除以2即可。
#include <iostream>
#include <cmath>
using namespace std;
struct POINT
{
double x;
double y;
};
int main()
{
POINT a, b, c;
POINT AB, BC;
while(cin >> a.x >> a.y >> b.x >> b.y >> c.x >> c.y)
{
AB.x = b.x - a.x;
AB.y = b.y - a.y;
BC.x = c.x - b.x;
BC.y = c.y - b.y;
cout.precision(6);
cout.setf(ios::fixed);
cout << fabs((AB.x * BC.y - AB.y * BC.x)) / 2.0f << endl;
}
return 0;
}
00:00.160 695 Kb
drizzlecrj
2005-10-30
打赏
举报
回复
stu1061 Area of Triangle(集训题V-三角形)
Area of Triangle(集训题V-三角形)
--------------------------------------------------------------------------------
时间限制: 1 Seconds 内存限制: 32768 Kb
总提交: 253 总通过: 105
--------------------------------------------------------------------------------
求三角形面积
问题描述:
给出二维空间上的三个点a,b,c,它们的坐标分别为,(x1,y1),(x2,y2),(x3,y3)。请编写一个程序,求出这三点所构成的三角形的面积。其中所有整数的取值范围是[-100,100]。
输入格式:
每行有6个整数,用空格分开,分别表示x1,y1,x2,y2,x3,y3。有多个测试数据,直到输入文件结束为止。
输出格式:
每行输出对应于输入给出的三角形的面积,精确到6位小数。
输入样例:
0 0 4 0 0 3
输出样例:
6.000000
-----------------------
Author: Lewjan
jacky_ji
2005-10-30
打赏
举报
回复
点到直线的距离还要复杂 并且如果算法不够好的话 是无法计算钝角三角形的 觉得hkbpro(UT2004)这个算法不错 去找线代的书看看 先谢过各位
rabbitweng
2005-10-30
打赏
举报
回复
看看线性代数中的点积和叉积就能知道如何用矩阵的方法求面积了,
而且这样不用判断这三个点是否能构成三角形,因为算出的行列式如果为0就表示了这种情况了
charlescpp
2005-10-30
打赏
举报
回复
楼上的是对的
面积就是0.5*向量|AB|叉|AC|,再求绝对值
这个只有乘法和加法,精度高 :)
hkbpro
2005-10-30
打赏
举报
回复
已知三角形的三个点的坐标(x1, y1), (x2, y2), (x3, y3)
面积S=abs((x1*y2 + x2*y3 + x3*y1 - x1*y3 - x2*y1 - x3*y2)/2)
就是行列式的展开
用多个
坐标
计算
面积
输入多个
坐标
进行
计算
三角形面积
公式用
坐标
用c语言,通过
三个
点的
坐标
求出
三角形面积
的公式
当
三个
点A、B、C的
坐标
分别为A(x1,y1)、B(x2,y2)、C(x3、y3)时,
三角形面积
为,S=(x1y2-x1y3+x2y3-x2y1+x3y1-x2y2)。解:设
三个
点A、B、C的
坐标
分别为A(x1,y1)、B(x2,y2)、C(x3、y3)。那么A、B、C三点可围成一个三角形。AC与AB边的夹角为∠A。那么向量AB=(x2-x1,y2-y1)、向量AC=(x3-x1,y3-y1)。令...
已知三点
坐标
求
三角形面积
等几何图形学问题
算法
算法
1. 求多边形面积 设A(x1,y1),B(x2,y2),C(x3,y3) 由A–>B–>C–>A 按逆时针方向转。(行列式书写要求) 设三角形的面积为S 则S=(1/2)(下面行列式) |x1 y1 1| |x2 y2 1| |x3 y3 1| S=(1/2)(x1y21+x2y31+x3y11-x1y31-x2y11-x3y21) 即用三角形的
三个
顶点
坐标
求其面积的公式...
通过
坐标
计算
三角形面积
描述 平面上有一个三角形,它的
三个
顶点
坐标
分别为(x1, y1), (x2, y2), (x3, y3),那么请问这个三角形的面积是多少。 输入 输入仅一行,包括6个单精度浮点数,分别对应x1, y1, x2, y2, x3, y3。 输出 输出也是一行,输出三角形的面积,精确到小数点后两位。 样例输入 0 0 4 0 0 3 样例输出 6.00 提示 海伦公...
C++之中已知三角形的
三个
坐标
点求解三角形的面积的
计算
std::cout << "三角形的面积为: " << area << std::endl;std::cout << "请输入第一个顶点的
坐标
(x1, y1): ";std::cout << "请输入第二个顶点的
坐标
(x2, y2): ";std::cout << "请输入第
三个
顶点的
坐标
(x3, y3): ";// 第一个顶点的
坐标
。// 第二个顶点的
坐标
。// 第
三个
顶点的
坐标
。
C++ 语言
65,208
社区成员
250,517
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章