我是直接搬运了某大佬的代码,毕竟我不清楚如何计算这个东西。

其中四点共面的求法就是体积为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 (公式)的更多相关文章

  1. hdu 5733 tetrahedron 四面体内切球球心公式

    tetrahedron Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  2. E. Tetrahedron(数学推导)

    E. Tetrahedron 分类: AC路漫漫2013-08-08 16:07 465人阅读 评论(0) 收藏 举报 time limit per test 2 seconds memory lim ...

  3. hdu 5726 tetrahedron 立体几何

    tetrahedron/center> 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5726 Description Given four p ...

  4. HDU 5733 tetrahedron(计算几何)

    题目链接 tetrahedron 题目大意 输入一个四面体求其内心,若不存在内心则输出"O O O O" 解题思路 其实这道题思路很简单,只要类推一下三角形内心公式就可以了. 至于 ...

  5. 为WLW开发Latex公式插件

    WLW是写博客的利器,支持离线.格式排版等,而且拥有众多的插件.博客园推荐了代码插入插件,但是没有提供WLW的公式编译插件.目前我的一般做法是:先在Word下使用MathType编辑好公式,然后将公式 ...

  6. 百度编辑器UEditor与UEditor 公式插件完整Demo

    1.下载UEditor(我的是.net项目) 2.下载UEditor公式插件 3.新建解决方案和项目 4.在浏览器中预览index.html页面 结果: 5.index.html源码 <!DOC ...

  7. poi读取excel模板,填充内容并导出,支持导出2007支持公式自动计算

    /** * 版权所有(C) 2016 * @author www.xiongge.club * @date 2016-12-7 上午10:03:29 */ package xlsx; /** * @C ...

  8. Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面

    Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...

  9. Excel公式 提取文件路径后缀

    我们在代码中获取一个文件路径的后缀,是一个很简单的事. 如C#中,可以通过new FileInfo(filePath).Extension,或者Path.GetExtension(filePath)获 ...

随机推荐

  1. 注解之@PathVariable

    @PathVariable只支持一个属性value,类型是为String,代表绑定的属性名称.默认不传递时,绑定为同名的形参. 用来便捷地提取URL中的动态参数.其英文注释如下: Annotation ...

  2. Asp.net Mvc Ajax.BeginForm提交表单

    之前Mvc中一直用Html.BeginForm提交表单,即如下: @using (Html.BeginForm("Add", "News", FormMetho ...

  3. dispatch_queue_set_specific可重入的gcd

    有时候我们很希望知道当前执行的queue是谁,比如UI操作需要放在main queue中执行.如果可以知道当前工作的queue是谁,就可以很方便的指定一段代码操作在特定的queue中执行.这种做法让G ...

  4. mysql 内置功能目录

    mysql 内置功能 视图介绍 mysql 内置功能 视图 使用 mysql 内置功能 触发器介绍 mysql 内置功能 触发器 实验 mysql 内置功能 事务 介绍 mysql 内置功能 存储过程 ...

  5. 前端 HTML form表单标签 input标签 type属性 重置按钮 reset

    input type="reset" value="重置" reset重置 还原到默认状态 <!DOCTYPE html> <html lan ...

  6. NYOJ 会场安排问题

    #include<iostream> #include<stdio.h> #include<string.h> #include<queue> #inc ...

  7. [ROS]一些传感器数据读取融合问题的思考

    思考问题: 1. 如何实现传感器数据的融合,或者说时间同步? 比如里程计读数和雷达数据融合? void SlamGMapping::startLiveSlam() { entropy_publishe ...

  8. [sh]md5sum接变量,find排除,sh判断文件存在

    1.md5sum md5sum `cat path_to_file|dos2unix` 注: 发现有些linux是gbk编码, 导致md5或ls 接变量后报错.需要dos2unix处理 2.find排 ...

  9. NN中BP推导及w不能初始化为0

    转自:为什么w不能初始化为0,而是要随机初始化?https://zhuanlan.zhihu.com/p/27190255 通俗理解BP.https://zhuanlan.zhihu.com/p/24 ...

  10. Wix制作安装包

    Wix制作安装包,找起资料来很费劲,记录一下: Product.wxs,该文件只能制作出msi形式的安装包,不能做到自动检测framework. <?xml version="1.0& ...