PCL:getCircumcircleRadius ❤️ 计算三角形外接圆半径
文章目录
- 1 外接圆半径公式
- 1.1 用三角形的边和角来表示它的外接圆的半径
- 1.2 用三角形的三边来表示它的外接圆的半径
- 1.3 用三角形的三边和面积表示外接圆半径的公式
- 2 函数原型
- 3 代码实现
- 4 输出结果
- 5 源码
1 外接圆半径公式
经过三角形各顶点的圆叫做三角形的外接圆,表示三角形外接圆半径的方法有:
- 用三角形的边和角来表示它的外接圆的半径;
- 用三角形的三边来表示它的外接圆的半径;
- 用三角形的三边和面积表示外接圆半径的公式。
1.1 用三角形的边和角来表示它的外接圆的半径
设在 △ABC\triangle ABC△ABC 中,已知一边和它的对角,由正弦定理的推论知,外接圆的半径 RRR 可由已知边和角来表示:
1.2 用三角形的三边来表示它的外接圆的半径
设在 △ABC\triangle ABC△ABC 中,已知三边 a,b,ca,b,ca,b,c,则
其中,p=a+b+c2p=\cfrac{a+b+c}{2}p=2a+b+c
1.3 用三角形的三边和面积表示外接圆半径的公式
R=abc4SR=\cfrac{abc}{4S}R=4Sabc
其中,a,b,ca,b,ca,b,c 为三边边长, SSS 为三角形面积
本文就是用这种方法计算三角形外接圆半径
2 函数原型
pcl::getCircumcircleRadius (const PointT &pa, const PointT &pb, const PointT &pc)
3 代码实现
给定三角形的三个顶点,返回三角形外接圆半径。
#include <iostream>
#include <pcl\io\pcd_io.h>
#include <pcl\common\common.h>using namespace std;int main()
{pcl::PointXYZ p1, p2, p3; //三角形的三个点p1.x = 0;p1.y = 0;p1.z = 0;p2.x = 10;p2.y = 0;p2.z = 0;p3.x = 5;p3.y = 10;p3.z = 10;float radius; //三角形外接圆半径radius = pcl::getCircumcircleRadius(p1, p2, p3);cout << "->三角形外接圆半径为:" << radius << endl;return 0;
}
4 输出结果
->三角形外接圆半径为:7.95495
5 源码
template <typename PointT> inline double
pcl::getCircumcircleRadius (const PointT &pa, const PointT &pb, const PointT &pc)
{Eigen::Vector4f p1 (pa.x, pa.y, pa.z, 0);Eigen::Vector4f p2 (pb.x, pb.y, pb.z, 0);Eigen::Vector4f p3 (pc.x, pc.y, pc.z, 0);double p2p1 = (p2 - p1).norm (), p3p2 = (p3 - p2).norm (), p1p3 = (p1 - p3).norm ();// Calculate the area of the triangle using Heron's formula // (http://en.wikipedia.org/wiki/Heron's_formula)double semiperimeter = (p2p1 + p3p2 + p1p3) / 2.0;double area = sqrt (semiperimeter * (semiperimeter - p2p1) * (semiperimeter - p3p2) * (semiperimeter - p1p3));// Compute the radius of the circumscribed circlereturn ((p2p1 * p3p2 * p1p3) / (4.0 * area));
}
相关链接:
PCL点云数据处理基础❤️❤️❤️目录
计算三角形内切圆半径的C++实现
百度百科:外接圆半径公式
PCL:getCircumcircleRadius ❤️ 计算三角形外接圆半径相关推荐
- 计算三角形内切圆半径的C++实现
1 计算公式 已知 △ABC\triangle ABC△ABC 的三边 a,b,ca,b,ca,b,c 和面积 SSS,则三角形内接圆的半径为: r=2Sa+b+cr=\cfrac{2S}{a+b+c ...
- PCL点云处理之计算三角形的外接圆半径(一百二十七)
PCL点云处理之计算三角形的外接圆的半径(一百二十七) 一.算法介绍 二.代码实现 三.效果展示 一.算法介绍 给出三角形的三个顶点坐标,计算外接圆的半径,具体代码实现如下: 二.代码实现 #incl ...
- ZOJ 1090 The Circumference of the Circle(计算三角形的外接圆)
提交地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1090 这是我最喜欢做的题之一,因为这种题我感觉 做一遍以后就会了 ...
- Java黑皮书课后题第3章:**3.19(计算三角形的周长)编写程序,读取三角形的三个边,如果输入值合法就计算这个三角形的周长;否则,显示这些输入值不合法。如果任意两条边的和大于第三边,则输入值都是合
**3.18(计算三角形的周长)编写程序,读取三角形的三个边,如果输入值合法就计算这个三角形的周长:否则,显示这些输入值不合法.如果任意两条边的和大于第三边,则输入值都是合法的 题目 题目概述 破题 ...
- C++编程练习:抽象类——编写一个程序,计算三角形、正方形的面积,抽象出一个基类base。
例.编写一个程序,要求计算三角形.正方形的面积,抽象出一个基类base,在其中说明一个虚函数display( )用来展示其参数且求出面积. 代码如下: 头文件headfile.h: #pragma o ...
- 信息学奥赛一本通 1034:计算三角形面积 | OpenJudge NOI 1.3 17
[题目链接] ybt 1034:计算三角形面积 OpenJudge NOI 1.3 17:计算三角形面积 [题目考点] 1. 已知三点求三角形面积公式 已知三点分别为(x1,y1),(x2,y2),( ...
- 信息学奥赛一本通(1034:计算三角形面积)
1034:计算三角形面积 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 67428 通过数: 21782 [题目描述] 平面上有一个三角形,它的三个顶点坐 ...
- 编程三角形面积公式_利用边长计算三角形面积 — 海伦公式推导
> 之前在计算三角形面积时使用了海伦公式 (p为周长的一半) 但对于如何推导出该公式,当时并不了解.现在推导一下. 假设一个普通三角形三边长分别为a.b.c,c边的高为h: 根据勾股定理,我们 ...
- python编写函数判断三角形_使用Python三角函数公式计算三角形的夹角案例
题目内容: 对于三角形,三边长分别为a, b, c,给定a和b之间的夹角C,则有:.编写程序,使得输入三角形的边a, b, c,可求得夹角C(角度值). 输入格式: 三条边a.b.c的长度值,每个值占 ...
- java继承类长方形面积_java_java用接口、多态、继承、类计算三角形和矩形周长及面积的方法,本文实例讲述了java用接口、多 - phpStudy...
java用接口.多态.继承.类计算三角形和矩形周长及面积的方法 本文实例讲述了java用接口.多态.继承.类计算三角形和矩形周长及面积的方法.分享给大家供大家参考.具体如下: 定义接口规范: /** ...
最新文章
- Windows Server 2008 多元密码策略之ADSIEDIT
- GDAL算法进度条使用说明
- 201703-4 地铁修建
- 谷歌开发者大会焦点:大中华区新掌门亮相,Android 10原生支持5G,TF2.0大更新...
- 5位随机数重复的概率 php_PHP产生不重复随机数的5个方法总结
- [react] 你有在项目中使用过Yeoman脚手架吗?
- uTorrent for mac(BT下载客户端)v1.8.7中文版
- 关于ie7下display:inline-block;不支持的解决方案
- python中math模块函数_python中math模块函数
- centos安装词典——图形界面的和命令行
- android:异步任务asyncTask介绍及异步任务下载图片(带进度条)
- 第08课:GDB 实用调试技巧( 上)
- 腾讯云播放器TcPlayer实现网络直播
- Python爬虫_03_urllib_xpath_JsonPath_BeautifulSoup应用及案例
- PHP学习总结(二)
- 如何用matlab画一个球
- rk3588 驱动调试记录
- 我喜欢出发(汪国真)
- 王传宝老师--宏观经济学家--金融研究专家---沪师经纪刘建
- Games104现代游戏引擎入门-lecture12游戏引擎的粒子和声效系统