当前位置: 首页 > article >正文

洛谷 B2031:计算三角形面积 ← 叉积

【题目来源】
https://www.luogu.com.cn/problem/B2031

【题目描述】
平面上有一个三角形,它的三个顶点坐标分别为 (x1, y1),(x2, y2),(x3, y3),那么请问这个三角形的面积是多少。

【输入格式】
输入仅一行,包括 6 个双精度浮点数,分别对应 x1,y1,x2,y2,x3,y3。

【输出格式】
输出也是一行,输出三角形的面积,精确到小数点后两位。

【输入样例】
0 0 4 0 0 3​​​​​​​

【输出样例】
6.00

【算法分析】
本题有多种解法,如基于“海伦公式”的解法。
下面给出基于“
向量叉积”的解法,更简洁。
● 向量叉积:a×b=|a||b|sinθ‌,其中 θ 为向量 a 与向量 b 的夹角‌。
● 向量叉积的
绝对值是以两个向量 a 与 b 为邻边的平行四边形的面积‌。
在下图中,若设 (x1,y1) 到 (x2,y2) 的向量为 a,(x1,y1) 到 (x3,y3) 的向量为 b,dx=x2-x1,dy=y2-y1,du=x3-x1,dv=y3-y1,则向量 a 与向量 b
的叉积的绝对值为 |dx*dv-du*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
*/




【参考文献】
https://www.luogu.com.cn/problem/solution/B2031




 


http://www.kler.cn/a/517562.html

相关文章:

  • MySQL入门(数据库、数据表、数据、字段的操作以及查询相关sql语法)
  • Windows Defender添加排除项无权限的解决方法
  • 每日进步一点点(网安)
  • SPP蓝牙串口
  • 完全二叉树的节点个数(力扣222)
  • k8s简介,k8s环境搭建
  • 飞行器半实物联合仿真:技术解析与应用实践
  • shell中for循环的用法
  • 深圳大学-智能网络与计算-实验一:RFID原理与读写操作
  • Charles 4.6.7 浏览器网络调试指南:功能详解下(五)
  • HarmonyOS NEXT边学边玩:从零实现一个影视App(七、今日票房页面的设计与实现)
  • 结构生物学3-冷冻电镜单颗粒重构:
  • 【C++】异常与智能指针
  • 分组表格antd+ react +ts
  • Python数据分析-数据加载与存储(六)
  • .NET 9.0 的 Blazor Web App 项目、Bootstrap Blazor 组件库、自定义日志 TLog 使用备忘
  • 【开源实录】从App Store审核失败到开源:一个AI辅助开发的SwiftUI项目
  • Docker 在Linux 系统中的使用说明
  • 数据结构与算法再探(六)动态规划
  • AIP-128 声明友好接口
  • Java语言程序设计(第3版) 课后练习
  • 《jEasyUI 动态改变列》
  • 解决lombok注解失效
  • 鸿蒙(HarmonyOS) HDC 命令合集分类记录
  • UDP/TCP ③-拥塞控制 || 滑动窗口 || 流量控制 || 快速重传
  • FineBI数据连接失败