小编xib*_*nke的帖子

在python中找到直线和圆的交点最有效的方法是什么?

我有一个由许多点组成的多边形.我想找到多边形和圆的交点.提供[x0,y0]的圆心和r0的半径,我写了一个粗略的函数来简单地求解圆和线的二次方程.但是逐个找到多边形的每个线段的交点效率怎么样?有更有效的方法吗?

我知道同情已经提供了获得不同几何形状的交叉点的特征.但是,如果我想处理大量的多边形,那么如同通过我自己的函数计算外部库的效率相比如何

def LineIntersectCircle(p,lsp,lep):
# p is the circle parameter, lsp and lep is the two end of the line
  x0,y0,r0 = p
  x1,y1 = lsp
  x2,y2 = esp
  if x1 == x2:
    if abs(r0) >= abs(x1 - x0):
        p1 = x1, y0 - sqrt(r0**2 - (x1-x0)**2)
        p2 = x1, y0 + sqrt(r0**2 - (x1-x0)**2)
        inp = [p1,p2]
        # select the points lie on the line segment
        inp = [p for p in inp if p[1]>=min(y1,y2) and …
Run Code Online (Sandbox Code Playgroud)

python geometry computational-geometry

16
推荐指数
2
解决办法
7171
查看次数

在python中创建嵌套类是一个好习惯吗?

我设法定义一个类A,使用另一个类B的实例列表作为类A的实例变量.B类有一个函数来改变A类的另一个实例变量a1.A类还具有改变B类实例变量bb的功能.所以A类可以访问B类,B类可以访问A类.这两个类是嵌套在一起的.我知道我们可以更容易地将所有实例变量和B类函数更改为A类.但在我的项目中,这个嵌套结构才是真实的东西.

class A:
  class B:
      count = 0
      def __init__(self,b1=None,b2=None):
          self.b1 = b1
          self.b2 = b2
      def funcb(self,bb):
          A.a1 = pyfunc1(bb)
  def __init__(self,a1,a2):
      self.a1 = a1
      self.a2 = a2
      self.listb = [A.B()]
  def funca(self,aa):
      A.B.count += 1
      b = A.B(self.a1,self.a2)
      listb.append(b)
      listb[A.B.count].b1 = listb[A.B.count-1].b1.pyfunc2(aa)
      listb[A.B.count].b2 = pyfunc3(aa,self.a2)
      listb[A.B.count].funcb(self.a2)
Run Code Online (Sandbox Code Playgroud)

我想知道的是,如果这种嵌套类会降低python的效率吗?更好的解决方案?

python oop class

7
推荐指数
1
解决办法
6165
查看次数

标签 统计

python ×2

class ×1

computational-geometry ×1

geometry ×1

oop ×1