python判断 射线是否与圆相交

python判断 射线是否与圆相交

 # 以上是返回截距式方程的y=kx+b的k和b
def GeneralEquation(first_x,first_y,second_x,second_y):
    A = second_y-first_y
    B = first_x-second_x
    C = second_x*first_y-first_x*second_y
    k = -1 * A / B
    b = -1 * C / B
    return k, b
# 循环遍历矩形每个点 判断在不在直线上
def isCollsion1(x,y,w,h,first_x,first_y,second_x,second_y):
    # 缩小矩形框增加精确度
    centerx=int(x+w/2);
    centery=int(y+h/2);
    # 计算截距式方程
    k,b=GeneralEquation(first_x,first_y,second_x,second_y)
    # 遍历矩形内每个点 判断是不是在直线上
    for w2 in range(centerx-3,centerx+3):
        for h2 in range(centery-3,centery+3):    
            y=k*w2+b
            if(y==h2):
                return 1;
    return 0;
    


iscol1=isCollsion1(0,1,2,2,1,1,2,2)
print(iscol1);

 

posted @ 2021-09-21 17:26  newmiracle宇宙  阅读(256)  评论(0编辑  收藏  举报