大体思路:可以将三角形转化成线段与圆相交。那么三角形与圆相交可以分为如下几种情况:
第一种情况:三角形的三个顶点都在圆内,此时只需要判断三个顶点到圆心的距离都小于R即可;
第二种情况:三角形有至少一个顶点在圆内,那么三角形必然与圆相交;
第三种情况:如图3,4所示,三角形一个顶点也没在圆内,那么此时要进行讨论三条线段与圆是否相交;
线段与圆相交判断代码:
int pan_duan(Point *p1, Point *p2,double r) {
double a, b, c, dist1, dist2, angle1, angle2; // ax + by + c = 0;
if (p1->x == p2->x)
a = 1, b &#