def __init__(self, plane_fit, gridsize):
plane = numpy.array(plane_fit)
origin = -plane / numpy.dot(plane, plane)
n = numpy.array([plane[1], plane[2], plane[0]])
u = numpy.cross(plane, n)
v = numpy.cross(plane, u)
u /= numpy.linalg.norm(u)
v /= numpy.linalg.norm(v)
def project_point(point):
return origin + point[0]*u + point[1]*v
vertexes = []
for x in range(-gridsize+1, gridsize):
for y in range(-gridsize+1, gridsize):
vertexes += [project_point((x-1, y-1)),
project_point((x, y-1)),
project_point((x, y)),
project_point((x-1, y))]
super(self, Plane).__init__(vertexes)
评论列表
文章目录