直线方程 y=kx+b;
圆标准方程 (x-a)2+(y-b)2=r2
public class PointV
{
public double x { get; set; }
public double y { get; set; }
}
/// <summary>
/// 计算与圆相交坐标
/// </summary>
/// <param name="Aux1">参考点1</param>
/// <param name="Aux2">参考点1</param>
/// <param name="r">半径</param>
/// <param name="center">圆心</param>
/// <returns></returns>
void GetCirPoint(PointV Aux1, PointV Aux2, double r, PointV center, PointV points[2])
{
//直线斜率不存在,线段垂直于X轴
if ((Aux1.x == Aux2.x) && (Aux1.y != Aux2.y))
{
if (fabs(center.x - Aux1.x) < r)
{
double y = sqrt(r * r - ((Aux1.x - center.x) * (Aux1.x - center.x)));
points[0].x = Aux1.x;
points[0].y = center.y + y;
points[1].x = Aux1.x;
points[1].y = center.y - y;
}
}
//两点重合
else if ((Aux1.y