Python 如何计算从一个正方形表面上的一个给定点到它的任何给定方向的边的距离?

Python 如何计算从一个正方形表面上的一个给定点到它的任何给定方向的边的距离?,python,geometry,Python,Geometry,我试图计算出从一个点到一个正方形表面边缘的距离(不管它的方向角如何)。我附上了一张我所说内容的草图。 栅格以正方形为中心(尽管绘制得不好)。从正方形中心到圆中心的距离。我希望找到一种方法来计算从圆到正方形边缘的距离,无论它朝哪个方向移动,而不必在代码中使用大量if-else语句 如果你有什么好主意,请告诉我 据我所知,您定义坐标和方向,并希望找到相交边点。建立沿两个坐标移动的方程式,并计算第一次相交的时间。没有if就没有神奇的方法 vx = Cos(Direction) vy = Sin(Di

我试图计算出从一个点到一个正方形表面边缘的距离(不管它的方向角如何)。我附上了一张我所说内容的草图。

栅格以正方形为中心(尽管绘制得不好)。从正方形中心到圆中心的距离。我希望找到一种方法来计算从圆到正方形边缘的距离,无论它朝哪个方向移动,而不必在代码中使用大量if-else语句


如果你有什么好主意,请告诉我

据我所知,您定义坐标和方向,并希望找到相交边点。建立沿两个坐标移动的方程式,并计算第一次相交的时间。没有if就没有神奇的方法

vx = Cos(Direction)
vy = Sin(Direction)

x = x0 + vx * t
y = y0 + vy * t

//potential border positions    
if vx > 0 then
   ex = x2
else
   ex = x1

if vy > 0 then
   ey = y2
else
   ey = y1

 //check for horizontal/vertical directions
if vx = 0 then
return cx = x0,  cy = ey

if vy = 0 then
    return cx = ex, cy = y0


//in general case find times of intersections with horizontal and vertical edge line
  tx = (ex - x0) / vx
  ty = (ey - y0) / vy

 //and get intersection for smaller parameter value
 if tx <= ty then 
    return cx = ex, cy = y0 + tx * vy
 else
    return  cx = x0 + ty * vx,  cy = ey
vx=Cos(方向)
vy=Sin(方向)
x=x0+vx*t
y=y0+vy*t
//可能的边界位置
如果vx>0,则
ex=x2
其他的
ex=x1
如果vy>0,则
ey=y2
其他的
ey=y1
//检查水平/垂直方向
如果vx=0,则
返回cx=x0,cy=ey
如果vy=0,则
返回cx=ex,cy=y0
//一般情况下,查找与水平和垂直边缘线相交的时间
tx=(ex-x0)/vx
ty=(ey-y0)/vy
//并获得较小参数值的交点
如果发送