Python教程

python判断 射线是否与圆相交

本文主要是介绍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);

 

这篇关于python判断 射线是否与圆相交的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!