洛谷 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
*/
参考文献
热门推荐
上海2日游必打卡:外滩+南京路+东方明珠
秋冬打卡!南京路&外滩最美拍照点
青甘大环线自驾游:出发前必做的车辆检查!
从曾国藩的为人处世,看企业管理之道
9天8晚青甘大环线自驾游攻略:从兰州到西宁的壮美之旅
冬游青甘大环线:冰雪世界里的绝美风光
莫高窟:青甘大环线上的文化瑰宝
中国十大宜居城市,中国十大旅游城市——娄底!
工业纯水机产水pH值偏酸性的调节方法
工业pH计的工作原理及其在工业生产中的重要性
韩红《天路》:青藏铁路背后的感人故事
幽默的力量:如何在职场中有效运用幽默
韩红再唱《天路》:致敬青藏铁路建设者
韩红《天路》:青藏铁路背后的感人故事
韩红再赴西藏:用爱温暖高原
外滩灯光升级!上海一日游必打卡新高度
赵本山:一个用生命在表演的艺术家
哭泣背后的生理与心理机制探究
哭泣背后的生理与心理机制探究
秋游上海:大闸蟹美食与绝美秋景的完美邂逅
春暖花开,秋蟹肥美:上海旅游正当时!
五月邂逅外滩:漫步万国建筑,定格魔都最美瞬间
关羽失荆州的七大主要原因:不仅仅是大意
《三国喵喵传》赤壁之战详解
7个低成本健康小技巧,不到一块钱,却能让你更健康
变天鼻子过敏怎么办?这4招帮你预防「温差型过敏」
适合产妇吃的菜谱
集美学村:高性价比住宿新宠!
集美房价被年轻人“躺平”影响?
韩红助力《东楼》:中国首部大型说唱音乐剧的创新之路