您好,欢迎来到伴沃教育。
搜索
您的当前位置:首页hdu6206 Apple java,三点找外接圆

hdu6206 Apple java,三点找外接圆

来源:伴沃教育

  

题意:给出 4 个点,问第4个点是否在前三个点形成的外接圆外。

tags: 会有精度问题,上 java 。。

1】公式

已知三点坐标,求外接圆圆心坐标与半径。

//已知三点坐标,求外接圆圆心坐标与半径。
x=((y2-y1)*(y3*y3-y1*y1+x3*x3-x1*x1)-(y3-y1)*(y2*y2-y1*y1+x2*x2-x1*x1))/(2.0*((x3-x1)*(y2-y1)-(x2-x1)*(y3-y1)));
y=((x2-x1)*(x3*x3-x1*x1+y3*y3-y1*y1)-(x3-x1)*(x2*x2-x1*x1+y2*y2-y1*y1))/(2.0*((y3-y1)*(x2-x1)-(y2-y1)*(x3-x1)));
r^2=(x1-a)*(x1-a)+(y1-b)*(y1-b);

 

2】函数

//三点找一圆
Circle findCircle2(P p1, P p2, P p3)
{
    double A1, A2, B1, B2, C1, C2, temp;
    A1 = p1.x - p2.x;
    B1 = p1.y - p2.y;
    C1 = (p1.x*p1.x - p2.x*p2.x + p1.y*p1.y - p2.y*p2.y) / 2;
    A2 = p3.x - p2.x;
    B2 = p3.y - p2.y;
    C2 = (p3.x*p3.x - p2.x*p2.x + p3.y*p3.y - p2.y*p2.y) / 2;
    temp = A1*B2 - A2*B1;
    Circle CD;
    CD.center.x = (C1*B2 - C2*B1) / temp;
    CD.center.y = (A1*C2 - A2*C1) / temp;
    CD.radius = sqrtf((CD.center.x - p1.x)*(CD.center.x - p1.x) + (CD.center.y - p1.y)*(CD.center.y - p1.y));
    return CD;
}

 

转载于:https://www.cnblogs.com/sbfhy/p/719.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务