/****************************************************************
圆与直线相交ILineCircle(Circle * C1, Circle * L1)
C1: 圆1的圆心(X1,Y1)半径:R1
L1: A,B,C : Ax +By + C = 0
正常返回 :圆与线的交点
错误返回 :不相交时, 交点返回(-99999,-99999)
*****************************************************************/
Point4 ILineCircle(Circle * C1, Circle * L1)
{
struct Point4 SS;
//int clpoint(POINT p,double r,double a,double b,double c,POINT &rp1,POINT &rp2)
L1->R = L1->R + L1->X * C1->X + L1->Y * C1->Y;
double tmp;
if (L1->X == 0 && L1->Y != 0)
{
tmp = -L1->R / L1->Y;
if (C1->R * C1->R < tmp*tmp)
{
cout << "error:圆与直线相离";
SS.Y2 = SS.X2 = SS.Y1 = SS.X1 = -9999;
}
else if (C1->R*C1->R == tmp * tmp)
{
SS.Y1 = tmp;
SS.X1 = 0;
}
else
{
SS.Y1 = SS.Y2 = t
直线与圆的交点
最新推荐文章于 2021-06-08 23:04:21 发布