洛谷 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
*/
参考文献
热门推荐
百度撤资引发极越闪崩:70亿财务窟窿如何收场?
家庭记账一目了然:轻松管理家庭财务的有效方法
旧店王子耀案件法律分析
胸痛不一定是致死性的,细数以胸痛症状为主的疾病
家用炒锅用什么材质的锅最好
安全生产着装要求
参访寺院:来灵隐寺参观礼佛,这份入寺指南请收好!
墙布发黑的原因及预防措施
湿疹患者如何护理皮肤
细胞免疫和体液免疫:人体免疫系统的双重防线
番茄炒蛋是荤菜还是素菜
涂料VOC检验:产品合规的关键步骤
调和油、菜籽油、花生油等10种食用油的选购指南
【疾病科普】多喝水不能排掉所有肾结石!一次说清10个误解
覆盆子和树莓的区别
成都迎糖酒会客商热潮!参展酒店:每个采购商的年销售额都在5000万元以上
胃窦炎一日三餐食谱
怎样睡姿可以缓解腰疼
通过VIN车架号怎么查询车牌号?车牌号不同颜色有什么不同意思?
Nature子刊:上海体育大学郭亮团队揭示母亲孕期运动有益孩子代谢健康的机制
吃苹果要注意!万不可这2个时间吃,对身体没好处,很多人不懂
探秘安徽九华山高质量发展"最优解"
25考研复试有变!面试形式“三随机”!
后备母猪情期管理对批次化生产中繁殖性能的影响及优化策略
正式启用!杭州西站实现铁路换乘地铁“免安检”
下汤遗址发现40周年:炊烟万年,循迹最早发现的上山文化遗址
激励机制:激发员工动力,提升绩效表现
腊猪蹄炖什么好吃?这些搭配你吃过吗?
外延性的定义是什么?这个定义在各个领域有何体现?
浅谈芯片制造中为什么需要外延层(Epitaxial Layer)?