洛谷 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
*/
参考文献
热门推荐
金鱼和木鱼
红色史馆设计新趋势:互动体验让历史焕发新生
湖南双峰举办首个民间火龙非遗文化节
在北京,适合一个人呆一整天的地方 | 北京LOOK
“AI医生”来了,未来将应用于哪些场景?
期刊论文查重工具的选择与应用
跳槽前必须搞清楚的10件事
蓝桥杯国奖学长眼中的填空题,真的就是得分利器!
二战时的法国,为何短短40多天就迅速投降?是屈辱还是明智
封建君权终至顶峰:清朝初年加强中央集权的措施
春秋时期齐国是如何在晋楚争霸的大背景下谋求发展的
如何在研发团队中实现有效的技术交流
甲状腺功能异常,当心影响你的怀孕计划
被挂牌督办的杨铭宇黄焖鸡:是如何突破道德和法律的底线的?
修图软件开发指南:从需求分析到持续迭代
胸腔有积液严不严重
怎么降低玻璃的反光程度?有哪些方法可以有效减少反光?
三七的功效与作用:止血活血,保肝降压
三七:自然馈赠的草本瑰宝
德国马膏治疗膝盖疼有效吗?使用方法全解析
独立悬架是什么?详解汽车悬挂系统的关键技术
座椅宽敞还有电视,21天行程过万公里……济南21天进藏大巴火了
日照文旅项目新进展:36个重点项目总投资264.7亿元
揭秘:成化年间所属的历史朝代是什么?
推恩令的历史演变及其对现代法制建设的意义
美团恶意差评的证据保留及其法律应对策略探析
债务协议审核是什么
「嬉しい」和「楽しい」哪个是表达自己内心的高兴?
「嬉しい」和「楽しい」哪个是表达自己内心的高兴?
壁挂炉问题怎么排查?一文详解常见故障排除方法