洛谷 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
*/
参考文献
热门推荐
启迪认知 | 社会应该消除对精神疾病的误解
《西洲曲》登上诗词大会,揭秘古代爱情密码
《西洲曲》的谐音梗,古人也玩得很溜
新年穿搭大揭秘:这些禁忌你知道吗?
过年穿新衣,真能带来好运吗?
春节穿搭避坑指南:告别不吉利
春节穿衣讲究:这些颜色和款式要避开!
北海老街:海上丝绸之路始发港的历史见证
北海银滩:最美沙滩打卡指南
红肉VS白肉,怎么吃更健康?请记住这3点!
从《花千骨》到《风吹半夏》:赵丽颖的获奖之路
赵丽颖横扫四大奖项,演技获权威认证
赵丽颖金鹰奖封后:高定白纱裙惊艳全场,获奖感言感动人心
从花千骨到许半夏:赵丽颖演艺生涯的两大里程碑
这几种人最会伪装,无论表面多好,都要远离
职场中,要做真实的自己,还是「伪装者」?
头孢克肟分散片:创新剂型引领制药新趋势
赵丽颖新作《鄂尔多斯1980》:一部展现80年代社会变迁的年代剧
赵丽颖凭《花千骨》封神:从萝莉到女王的蜕变之路
赵丽颖代表作盘点:从花千骨到知否,你最爱哪一部?
光气和水的化学恋爱史
光气危害知多少?呼吸系统保卫战
央视主持人转型演员,《蔷薇风暴》里的表现如何?
央视新生代主持人:在传统与创新中寻找平衡
儿童牙刷大揭秘:如何让孩子爱上刷牙?
开学季护齿攻略:牛奶、肝脏、鱼这样吃最有益
儿童口腔健康,你真的懂吗?
六龄牙来了,牙齿不齐怎么办?
网络工程师职业发展方向和职业前景
猪心汤的食材搭配及注意事项指南