tetrahedron (公式)
我是直接搬运了某大佬的代码,毕竟我不清楚如何计算这个东西。
其中四点共面的求法就是体积为0,然后圆心和半径就公式了。
#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
#define eps 1e-8
struct node
{
double x,y,z;
}a,b,c,d,ans; ///面积公式
double get(node a,node b,node c)
{
double x1=b.x-a.x,y1=b.y-a.y,z1=b.z-a.z;
double x2=c.x-a.x,y2=c.y-a.y,z2=c.z-a.z;
double d1=y1*z2-y2*z1;
double d2=x1*z2-x2*z1;
double d3=x1*y2-x2*y1;
return sqrt(d1*d1+d2*d2+d3*d3)*0.5;
} ///体积
double Get(node a,node b,node c,node d)
{
double x1=b.x-a.x,y1=b.y-a.y,z1=b.z-a.z;
double x2=c.x-a.x,y2=c.y-a.y,z2=c.z-a.z;
double x3=d.x-a.x,y3=d.y-a.y,z3=d.z-a.z;
double ans=x1*(y2*z3-y3*z2)-y1*(x2*z3-x3*z2)+z1*(x2*y3-x3*y2);
return abs(ans)/6.0;
}
int main()
{
while(~scanf("%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf",&a.x,&a.y,&a.z,&b.x,&b.y,&b.z,&c.x,&c.y,&c.z,&d.x,&d.y,&d.z))
{
double s1,s2,s3,s4,V;
V=Get(a,b,c,d);
s1=get(b,c,d);
s2=get(a,c,d);
s3=get(a,b,d);
s4=get(a,b,c);
double t=s1+s2+s3+s4;
if(V<eps)
{
printf("O O O O\n");
continue;
}
ans.x=(s1*a.x+s2*b.x+s3*c.x+s4*d.x)/t;
ans.y=(s1*a.y+s2*b.y+s3*c.y+s4*d.y)/t;
ans.z=(s1*a.z+s2*b.z+s3*c.z+s4*d.z)/t;
double r=V*3.0/t;
printf("%.4lf %.4lf %.4lf %.4lf\n",ans.x,ans.y,ans.z,r);
}
}
tetrahedron (公式)的更多相关文章
- hdu 5733 tetrahedron 四面体内切球球心公式
tetrahedron Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- E. Tetrahedron(数学推导)
E. Tetrahedron 分类: AC路漫漫2013-08-08 16:07 465人阅读 评论(0) 收藏 举报 time limit per test 2 seconds memory lim ...
- hdu 5726 tetrahedron 立体几何
tetrahedron/center> 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5726 Description Given four p ...
- HDU 5733 tetrahedron(计算几何)
题目链接 tetrahedron 题目大意 输入一个四面体求其内心,若不存在内心则输出"O O O O" 解题思路 其实这道题思路很简单,只要类推一下三角形内心公式就可以了. 至于 ...
- 为WLW开发Latex公式插件
WLW是写博客的利器,支持离线.格式排版等,而且拥有众多的插件.博客园推荐了代码插入插件,但是没有提供WLW的公式编译插件.目前我的一般做法是:先在Word下使用MathType编辑好公式,然后将公式 ...
- 百度编辑器UEditor与UEditor 公式插件完整Demo
1.下载UEditor(我的是.net项目) 2.下载UEditor公式插件 3.新建解决方案和项目 4.在浏览器中预览index.html页面 结果: 5.index.html源码 <!DOC ...
- poi读取excel模板,填充内容并导出,支持导出2007支持公式自动计算
/** * 版权所有(C) 2016 * @author www.xiongge.club * @date 2016-12-7 上午10:03:29 */ package xlsx; /** * @C ...
- Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面
Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...
- Excel公式 提取文件路径后缀
我们在代码中获取一个文件路径的后缀,是一个很简单的事. 如C#中,可以通过new FileInfo(filePath).Extension,或者Path.GetExtension(filePath)获 ...
随机推荐
- PopupMenu动态创建菜单
1.TPopupMenu一条横线在Caption输入一个'-'就可以了.2.在Caption输入名字之后加入一个&就可以不显示快捷键,比如: 退出& 这样退出按钮的快捷键就不会显示出 ...
- oracle创建表空间 授权
--创建表空间 临时表空间 create temporary tablespace xiaodai_temp tempfile '/main/app/oracle/oradata/devdb/xiao ...
- 'react-scripts' is not recognized as an internal or external command
React项目在执行npm start的时候报下面的错误: 解决办法:把项目目录中node_modules文件夹删掉,重新npm install一下,然后再执行npm start
- jmeter之最佳实践
官方文档: http://jmeter.apache.org/usermanual/best-practices.html 翻译: 16.最佳实践 16.1 始终使用最新版本的JMeter JMete ...
- mac-破解2018 webstorm
参考链接:https://blog.csdn.net/pariese/article/details/77540069 后续待整理
- Element-diag中遮罩
<el-dialog title="收货地址" :visible.sync="dialogFormVisible" append-to-body> ...
- drf解析器
1.简介 作用:将传过来的数据,解析成字典 2.使用 分为局部使用和全局使用 局部使用,什么都不写,默认就是 parser_classes = [JSONParser,FormParser] from ...
- Wix制作安装包
Wix制作安装包,找起资料来很费劲,记录一下: Product.wxs,该文件只能制作出msi形式的安装包,不能做到自动检测framework. <?xml version="1.0& ...
- $router.query和$router.params的区别
类型于get(query) 和 post(params) 1.query方式传参和接收参数 传参: this.$router.push({ path:"/xxx" query: ...
- [LeetCode] 613. Shortest Distance in a Line_Easy tag: SQL
Table point holds the x coordinate of some points on x-axis in a plane, which are all integers. Writ ...