洛谷 B2031:计算三角形面积的向量叉积解法
创作时间:
作者:
@小白创作中心
洛谷 B2031:计算三角形面积的向量叉积解法
引用
CSDN
1.
https://blog.csdn.net/hnjzsyjyj/article/details/145344955
洛谷B2031题目要求计算给定三个顶点坐标的三角形面积。本文将介绍一种基于向量叉积的简洁算法来解决这个问题。
题目描述
平面上有一个三角形,它的三个顶点坐标分别为 ((x_1, y_1)),((x_2, y_2)),((x_3, y_3)),那么请问这个三角形的面积是多少。
输入格式
输入仅一行,包括 6 个双精度浮点数,分别对应 (x_1),(y_1),(x_2),(y_2),(x_3),(y_3)。
输出格式
输出也是一行,输出三角形的面积,精确到小数点后两位。
输入样例
0 0 4 0 0 3
输出样例
6.00
算法分析
本题有多种解法,如基于“海伦公式”的解法。下面给出基于“向量叉积”的解法,更简洁。
- 向量叉积:(\mathbf{a} \times \mathbf{b} = |\mathbf{a}||\mathbf{b}|\sin\theta),其中 (\theta) 为向量 (\mathbf{a}) 与向量 (\mathbf{b}) 的夹角。
- 向量叉积的绝对值是以两个向量 (\mathbf{a}) 与 (\mathbf{b}) 为邻边的平行四边形的面积。
在下图中,若设 ((x_1,y_1)) 到 ((x_2,y_2)) 的向量为 (\mathbf{a}),((x_1,y_1)) 到 ((x_3,y_3)) 的向量为 (\mathbf{b}),(dx=x_2-x_1),(dy=y_2-y_1),(du=x_3-x_1),(dv=y_3-y_1),则向量 (\mathbf{a}) 与向量 (\mathbf{b})的叉积的绝对值为 (|dx \cdot dv - du \cdot dy|)。
算法代码
#include <bits/stdc++.h>
using namespace std;
int main() {
double x1, y1, x2, y2, x3, y3;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
double dx = x2 - x1, dy = y2 - y1, du = x3 - x1, dv = y3 - y1;
double s = abs(dx * dv - du * dy) / 2.0;
printf("%.2lf", s);
return 0;
}
/*
in:
0 0 4 0 0 3
out:
6.00
*/
参考文献
热门推荐
爱因斯坦:科学巨匠与人文精神的典范
以四季入名:精选春夏秋冬高雅名字及寓意
一审判处拘役实刑还有机会缓刑吗
生育难题,需要从“心”开始:做好心理干预,提升不孕治疗成功率
孙行者和猪八戒,兄弟关系在何时开始崩溃,变为仇敌的?
夫妻沟通指南:如何正确回应伴侣的情感需求
脑血管狭窄做支架好还是保守治疗好
SPSS检验正态分布的标准与操作步骤详解
肖战、任敏主演的《玉骨遥》,值得称赞,却又有哪些不足呢
管理项目总结报告怎么写
这9个地方做到了,厨房收纳瞬间翻倍
7种中成药,帮助舒肝理气
保价3000只赔500?!快递公司说了算的赔偿,到底是不是“霸王条款”?
八字德秀的人多吗,命中有编制的八字
面塑艺术润童心 非遗文化共传承
工单处理系统冷热数据分离方案设计
豆腐在烹调时容易碎,有什么办法可以避免?保持完整不碎的秘诀
如何快速治头晕
平平无奇的一块饼,凭什么成为广州“顶流”手信?
美国大萧条时代,美国人的生活有多艰难?
花卉绿植月季苗嫁接指南
珐琅彩瓷器:从工艺特点到鉴赏要点的全面解析
高尔夫新手必读:一次讲清高尔夫挥杆动作技巧
日本永驻申请条件2024最新,你符合要求吗
校园文化到底该如何建设?
金条疯狂涌入美国,金价再创历史新高
如何在不同设备上正确输入乘号(×)的方法与技巧
杨万里《小池》 的古诗赏析
舌苔厚腻,舌中有裂纹?这种舌头别健脾,它的病根并不在脾胃
行政事业单位财政代管资金的会计核算探讨