POJ 1329 求三角形外接圆

简介:

题意给出三角形三点坐标让求出该三角形的外接圆标准方程和一般方程。

这题输出很恶心,注意0.000的时候要输出并且前面的符号为“ + ”,那么外接圆的半径r通过S=(a*b*c)/(4*r)可以求出r=(a*b*c)/(4*S),然后外心坐标是三边垂直平分线的交点,求出两个垂直平分线方程然后可以得出交点坐标。

#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
typedef double PointType;
struct point
{
    PointType x,y;
};
PointType TriangleArea(point pi,point pj,point pk) //判断向量PiPj在向量PiPk的顺逆时针方向 +顺-逆0共线
{
    return fabs((pj.x-pi.x)*(pk.y-pi.y)-(pk.x-pi.x)*(pj.y-pi.y))/2;
}
PointType Dis(point a,point b)
{
    return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
int main()
{
    point a,b,c;
    double r;
    int f=0;
    while(~scanf("%lf%lf%lf%lf%lf%lf",&a.x,&a.y,&b.x,&b.y,&c.x,&c.y))
    {
        if(f)
            cout<<endl;
        f++;
        r=Dis(a,b)*Dis(a,c)*Dis(b,c)/TriangleArea(a,b,c)/4;
        double c1=(a.x*a.x+a.y*a.y-b.x*b.x-b.y*b.y)/2;
        double c2=(a.x*a.x+a.y*a.y-c.x*c.x-c.y*c.y)/2;
        point centre;
        centre.x=(c1*(a.y-c.y)-c2*(a.y-b.y))/((a.x-b.x)*(a.y-c.y)-(a.x-c.x)*(a.y-b.y));
        centre.y=(c1*(a.x-c.x)-c2*(a.x-b.x))/((a.y-b.y)*(a.x-c.x)-(a.y-c.y)*(a.x-b.x));
        //圆心为Center 半径为r
        cout<<"(x";
        if(centre.x>0)
            cout<<" - ",printf("%.3f",centre.x);
        else if(centre.x<=0)
            cout<<" + ",printf("%.3f",-centre.x);
        cout<<")^2 + (y";
        if(centre.y>0)
            cout<<" - ",printf("%.3f",centre.y);
        else if(centre.y<=0)
            cout<<" + ",printf("%.3f",-centre.y);
        cout<<")^2 = ",printf("%.3f",r),cout<<"^2"<<endl;
        //第二行输出开始
        cout<<"x^2 + y^2";
        if(centre.x>0)
            cout<<" - ",printf("%.3fx",2*centre.x);
        else if(centre.x<=0)
            cout<<" + ",printf("%.3fx",2*-centre.x);
        if(centre.y>0)
            cout<<" - ",printf("%.3fy",2*centre.y);
        else if(centre.y<=0)
            cout<<" + ",printf("%.3fy",2*-centre.y);
        if(centre.x*centre.x+centre.y*centre.y-r*r>=0)
            cout<<" + ",printf("%.3f",centre.x*centre.x+centre.y*centre.y-r*r);
        else if(centre.x*centre.x+centre.y*centre.y-r*r<0)
            cout<<" - ",printf("%.3f",-(centre.x*centre.x+centre.y*centre.y-r*r));
        cout<<" = 0"<<endl;
    }
    return 0;
}


目录
相关文章
|
3月前
|
数据采集 运维 DataWorks
DataWorks 千万级任务调度与全链路集成开发治理赋能智能驾驶技术突破
智能驾驶数据预处理面临数据孤岛、任务爆炸与开发运维一体化三大挑战。DataWorks提供一站式的解决方案,支持千万级任务调度、多源数据集成及全链路数据开发,助力智能驾驶模型数据处理与模型训练高效落地。
|
SQL 存储 分布式计算
CDP的Hive3系列之Hive Metastore介绍
CDP的Hive Metastore (HMS) 是一种服务,用于在后端 RDBMS(例如 MySQL 或 PostgreSQL)中存储与 Apache Hive 和其他服务相关的元数据。Impala、Spark、Hive 和其他服务共享元存储。与 HMS 的连接包括 HiveServer、Ranger 和代表 HDFS 的 NameNode。
2666 0
CDP的Hive3系列之Hive Metastore介绍
|
3月前
|
存储 监控 分布式数据库
ClickHouse分布式数据库动态伸缩(弹性扩缩容)的实现
实现ClickHouse数据库的动态伸缩需要持续的维护和精细的操作。从集群配置到数据迁移,再到监控和自动化,每一步都要仔细管理以确保服务的可靠性和性能。这些活动可以显著提高应用的响应性和成本效率,帮助业务根据实际需求灵活调整资源分配。
203 10
|
3月前
|
缓存 移动开发 网络协议
纯血鸿蒙NEXT即时通讯/IM系统:RinbowTalk正式发布,全源码、纯ArkTS编写
RainbowTalk是一套基于MobileIMSDK的产品级鸿蒙NEXT端IM系统,目前已正式发布。纯ArkTS、从零编写,无套壳、没走捷径,每一行代码都够“纯”(详见:《RainbowTalk详细介绍》)。 MobileIMSDK是一整套开源IM即时通讯框架,历经10年,超轻量级、高度提炼,一套API优雅支持 UDP 、TCP 、WebSocket 三种协议,支持 iOS、Android、H5、标准Java、小程序、Uniapp、鸿蒙NEXT,服务端基于Netty编写。
214 1
|
8月前
|
运维 监控 安全
ARMS 助力假面科技研发运维提效,保障极致游戏体验
阿里云 ARMS 团队助力假面科技游戏业务实现全业务、全场景的监控和告警,全面提升监控覆盖率和告警有效率,其中告警平均恢复耗时(MTTR)缩短 50% 以上。
292 109
|
9月前
|
存储 安全 小程序
apk安装包EXE,mis程序打包后报毒的正确处理方式-千万不要再人傻钱多被骗-真正的合法途径的处理方式才是正确的-apk安装包EXE,mis程序如何处理-优雅草央千澈
apk安装包EXE,mis程序打包后报毒的正确处理方式-千万不要再人傻钱多被骗-真正的合法途径的处理方式才是正确的-apk安装包EXE,mis程序如何处理-优雅草央千澈
245 32
apk安装包EXE,mis程序打包后报毒的正确处理方式-千万不要再人傻钱多被骗-真正的合法途径的处理方式才是正确的-apk安装包EXE,mis程序如何处理-优雅草央千澈
|
9月前
|
人工智能 运维 Java
阿里云OS Copilot使用心得
作为一名后端开发工程师,我最近尝试了阿里云的Linux智能助手OS Copilot。安装过程简单,但需确保服务器内存充足(至少600M空闲)。使用RAM用户设置ACCESS_KEY时遇到问题,最终用主账号KEY解决。单命令模式体验良好,能快速生成Java服务启动脚本等。Copilot在Linux系统管理、网络配置和Shell脚本编写方面表现出色,极大提升了工作效率。虽然担心AI对运维工作的影响,但目前看来更多是助力而非替代。
145 6
|
10月前
|
消息中间件 Kafka 应用服务中间件
仙讯畅通无阻:探索MQ阵法的强大功能
MQ(消息队列)起源于1993年IBM推出的MQSeries,后更名为WebSphere MQ和IBM MQ。常见的MQ系统包括:IBM MQ、Apache ActiveMQ、RabbitMQ、Apache Kafka、RocketMQ和Amazon SQS。这些系统广泛应用于异步通信、系统解耦和削峰填谷等场景,确保消息的可靠传递。在修真界,MQ阵法如同神秘的传信工具,能在仙人修炼时安全传递重要信息,保障仙讯畅通无阻。
163 4
|
11月前
|
人工智能 JavaScript 数据可视化
深入探索 Flux Tools 在 AI 图像创作中的强大功能
Flux Tools 是由 Black Forest Labs 开发的一套先进 AI 图像编辑工具,集成了修补、扩展、深度映射和边缘检测等功能,为用户提供高精度的图像控制能力,广泛应用于照片编辑、数字艺术创作和设计工作等领域,极大提升了创作效率与自由度。
无影云电脑免安装黑神话悟空-直面天命
无影云电脑现已预装《黑神话:悟空》免去漫长下载等待,让您即刻享受游戏乐趣。