The Circumference of the Circle

本题在ZOJ上题号是1090,在POJ上是2242。题目描述如下:
Description
To calculate the circumference of a circle seems to be an easy task - provided you know its diameter. But what if you don't? 
You are given the cartesian coordinates of three non-collinear points in the plane. 
Your job is to calculate the circumference of the unique circle that intersects all three points. 
Input
The input will contain one or more test cases. Each test case consists of one line containing six real numbers x1,y1, x2,y2,x3,y3, representing the coordinates of the three points. The diameter of the circle determined by the three points will never exceed a million. Input is terminated by end of file.
Output
For each test case, print one line containing one real number telling the circumference of the circle determined by the three points. The circumference is to be printed accurately rounded to two decimals. The value of pi is approximately 3.141592653589793.
Sample Input
0.0 -0.5 0.5 0.0 0.0 0.5
0.0 0.0 0.0 1.0 1.0 1.0
5.0 5.0 5.0 7.0 4.0 6.0
0.0 0.0 -1.0 7.0 7.0 7.0
50.0 50.0 50.0 70.0 40.0 60.0
0.0 0.0 10.0 0.0 20.0 1.0
0.0 -500000.0 500000.0 0.0 0.0 500000.0
Sample Output
3.14
4.44
6.28
31.42
62.83
632.24
3141592.65
分析:本题是一道比较容易的题,具体就考察了几个数学公式的使用。本题的关键是求出内接三角形的外接圆直径。而在圆的内接三角形的性质中有这样一条:三角形的任何两边的乘积的等于第三边上的高于其外接圆直径的乘积。这样问题就转化为求接三角形的某一边上的高,在知道三角形三个顶点的情况下,求其面积应该是件容易事,求得面积后,高的问题也就迎刃而解。求面积时,由于本人较懒,用的是海伦公式:
,其中p = (a+b+c)/2,a,b,c分别为三角形的三个变长,S=0.5*c*h,即可求得h。a*b=h*d,那么直径d也就出来了。具体代码如下.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
double x1, y1, x2, y2, x3, y3;
double l1, l2, l3;
double p;
double h;
double d;
while (scanf("%lf%lf%lf%lf%lf%lf", &x1, &y1, &x2, &y2, &x3, &y3) == 6)
{
l1 = sqrt(pow(x1-x2, 2) + pow(y1-y2, 2));
l2 = sqrt(pow(x1-x3, 2) + pow(y1-y3, 2));
l3 = sqrt(pow(x2-x3, 2) + pow(y2-y3, 2));
p = (l1 + l2 + l3)/2;
h = sqrt(p*(p-l1)*(p-l2)*(p-l3))*2/l3;
d = l1*l2/h;
printf("%.2f\n", 3.141592653589793*d);
}
return 0;
}

已知圆上的三个点求此圆的周长相关推荐

  1. 【C#】已知圆心上的三点求圆心

    已知圆心上的三点:,, ,求圆心: 把三点坐标圆的方程: 得: 把  展开整理得: 令 ; ; , , ,  求 求 把  移项整理得: 把  移项整理得: 还原代入式子: 整理结果 简化: 其中: ...

  2. 已知两圆圆心坐标及半径求两圆交点 (C语言|参数方程求解)

    已知两圆圆心坐标及半径求两圆交点 (C语言|参数方程求解) 在一个二维平面上给定两个圆的圆心横纵坐标.半径共6个参数, 求交点. 这个问题无非是解二元二次方程组.普通二元二次方程联立消元求解的困难在于 ...

  3. 已知直线上两点求其一般式

    已知直线上两点P1 P2,求直线的一般式方程. 已知直线上的两点P1(X1,Y1) P2(X2,Y2), P1 P2两点不重合.求该直线的一般式方程AX+BY+C=0 解当x1=x2时,直线方程为x- ...

  4. Java黑皮书课后题第4章:*4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上面的三个随机点,显示由这三个随机点组成的三角形的三个角的度数

    *4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上的三个随机点,显示由这三个随机点组成的三角形的三个角的度数 题目 题目概述 破题 代码 题目 题目概述 *4.6(图 ...

  5. 已知空间中的三点 求三角形面积_各类几何体的体积与表面积的计算问题

    考纲原文 了解球.棱柱.棱锥.台的表面积和体积的计算公式. 知识点详解 一.柱体.锥体.台体的表面积 1.旋转体的表面积 2.多面体的表面积 多面体的表面积就是各个面的面积之和,也就是展开图的面积. ...

  6. java 球面距离_[置顶] C语言实验题:已知地球上两点的经度和纬度求其球面距离...

    要求:地球的平均半径为6371千米,已知地球上两个城市A.B的经度和纬度,编程序求出这两个城市之间的地面距离. 首先,固定两点,a(x1,y1,z1),b(x2,y2,z2). 由空间解析几何及向量知 ...

  7. 已知空间中的三点 求三角形面积_【气宇轩昂】解三角形最值问题的四大模型尤其是第四种模型,简直不要太赞哦!!!...

    点击上方蓝色字体"高中数学王晖"关注王晖老师,免费获取各种知识干货和学习经验~~~您的点赞转发是对老师的最大鼓舞~~~ 距高考还有262天 1 三角函数有界性 在三角函数中,正弦函 ...

  8. c语言编程求二元一次方程组方程,二元一次方程组练习题 已知二元一次方程的三个系数,用C语言编程求方程的......

    导航:网站首页 > 二元一次方程组练习题 已知二元一次方程的三个系数,用C语言编程求方程的... 二元一次方程组练习题 已知二元一次方程的三个系数,用C语言编程求方程的... 相关问题: 匿名网 ...

  9. 圆上任选三点组成三角形,这个三角形是锐角、钝角和直角三角形的概率分别是多少?

    圆上任选三点组成三角形,这个三角形是锐角.钝角和直角三角形的概率分别是多少? 问题可以等价于: 任取三角形,圆心落在三角形内.外.边上的概率各是多少 这三种情况分别对应锐角.钝角.直角. 然后这就变成 ...

最新文章

  1. 机虚拟磁盘附加到计算机上,解决在NAS的共享文件夹下的VHDX虚拟磁盘无法附加到系统...
  2. AI 图像傅里叶变换
  3. maven 工程mybatis自动生成实体类
  4. 如何解决ABBYY FineReader中表格检测不到问题
  5. android mysql 数据库文件_android mysql数据库文件
  6. 那些html编辑器有代码片段6,VS Code 折腾记 - (6) 基本配置/快捷键定义/代码片段的录入(snippet)...
  7. 他在计算机上工作英语翻译,英语翻译1.尽管他在手术中割破了手,但他仍在继续工作.(in spite of)2.计算机在现代生活中起着重要的作用.(...
  8. 单机多实例Tomcat部署
  9. org.n3r.idworker idworker-client生成唯一id
  10. ThinkPhp报错:thinkphp\library\think\Template.php Line(1243) template not exists:...test\...\index.html
  11. FIR数字滤波器的FPGA实现
  12. UPCA条形码生成器
  13. 13-02-uniapp供热服务接口配置
  14. 2011年的暑假(大一的暑假——还算充实)
  15. 三维场景轻量化展示解决方案
  16. 让梁大侠头疼的CPU段式结构的由来
  17. 115.滑动菜单指示器特效
  18. 运算器和控制器的组成部件及功能
  19. 而立苏宁:零售之王的自我迭代
  20. 智慧网 分享DCT,DST,matlab

热门文章

  1. 将ES6代码转换为ES5代码
  2. [HR规划]人力资源规划详解(zt)
  3. Linux中文件的压缩和解压缩
  4. java按照多个分隔符分割字符串
  5. 树莓派使用PCA9685()出现[Errno 121] Remote I/O error的解决方法
  6. $.ajax跨域请求数据的解决方案
  7. EF中的上下文(DbContext)简介
  8. add-migration 多个DbContext
  9. hdu 5148Cities 树形dp
  10. 安装Glusterfs