当前位置: 首页>>代码示例>>Python>>正文


Python Point.dup方法代码示例

本文整理汇总了Python中Point.Point.dup方法的典型用法代码示例。如果您正苦于以下问题:Python Point.dup方法的具体用法?Python Point.dup怎么用?Python Point.dup使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Point.Point的用法示例。


在下文中一共展示了Point.dup方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: Point

# 需要导入模块: from Point import Point [as 别名]
# 或者: from Point.Point import dup [as 别名]
class Dragon:
    pivot = Point()
    points = [Point()]
    
    def __init__(self, x):
        self.points = []
        for i in range(x+1):
            self.points.append(Point(i,0))
        self.pivot = Point(x,0)
        self.maximal = self.pivot.dup()
    
    def p(self, n = 8):
        counter = 0
        print 'pivot: ({0},{1})'.format(self.pivot.x,self.pivot.y)
        for p in self.points:
            print '({0},{1})'.format(p.x,p.y),
            counter += 1
            if counter == n:
                counter = 0
                print ''
        return self
    
    def iterate(self, n = 1):
        for rounds in range(n):
            for p in self.points[1:-1]:
                self.points.append(p.dup().rotate(self.pivot))
            # handle new pivot
            new_pivot = self.points[0].dup().rotate(self.pivot)
            self.pivot = new_pivot
            self.points.append(self.pivot.dup())
        return self
    
    def _normalize(self):
        #find min x and min y in points
#        print 'pre normalization:', self.p()
        minX,minY,maxX,maxY = 0,0,0,0
        for p in self.points:
            if p.x < minX:
                minX = p.x
            if p.y < minY:
                minY = p.y
#        print "\n\nfound a minimum at ({0},{1})".format(minX,minY)
        # translate all the points
        new_array = []
        for p in self.points:
            new_array.append(p.dup().translate(-minX, -minY))
        self.points = new_array
#        print '\n\npost normalization:', self.p()
        # get maximums
        for p in self.points:
            if p.x > maxX:
                maxX = p.x
            if p.y > maxY:
                maxY = p.y
        self.maximal = Point(maxX, maxY)
        return self
    
    def write(self, filename, forground = [0,0,0], background = [255,255,255]):
        self._normalize()
        width = 1 + (self.maximal.x + 1) + 1
        height = 1 + (self.maximal.y + 1) + 1
        image = Png(width,height)
#        print "image is {0}x{1} pixels".format(width, height)
        for y in range(height):
            for x in range(width):
#                print "setting background color of ({0},{1})".format(x,y)
                image.set_pixel(x,y,background)
        for p in self.points:
            image.set_pixel(1 + p.x,1 + p.y,forground)
#            print "set forground of point ({0},{1})".format(p.x,p.y),
#            print "at pixel ({0},{1})".format( 1 + p.x, 1 + p.y)
        image.write(filename)
        return self
开发者ID:dburggie,项目名称:dragon,代码行数:75,代码来源:Dragon.py


注:本文中的Point.Point.dup方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。