1 import sys, pygame, math 2 3 pygame.init() 4 screen = pygame.display.set_mode([640, 480]) 5 6 screen.fill([255, 255, 255]) 7 for x in range(0, 640): 8 y = int(math.sin(x / 640.0 * 4 * math.pi) * 200 + 240)#y坐标 9 pygame.draw.rect(screen, [0, 0, 0], [x, y, 1, 1], 1)#小矩形来画sinx 10 11 pygame.display.flip() 12 running = True 13 while running: 14 for event in pygame.event.get(): 15 if event.type == pygame.QUIT: 16 running = False 17 pygame.quit()
如果线宽用0的话,什么都不会显示,因为这样的小矩形没有'中间部分' 来填充
可以看到,上面的图是一个一个的点,点中间还存在空格,这是因为,在比较陡的地方,我们必须上移3个像素而向右只移动一个像素,而且我们画的是点,不是线
下面是连接多个点的方法:
1 import sys, pygame, math 2 3 pygame.init() 4 screen = pygame.display.set_mode([640, 480]) 5 plotPoint = [] 6 7 screen.fill([255, 255, 255]) 8 for x in range(0, 640): 9 y = int(math.sin(x / 640.0 * 4 * math.pi) * 200 + 240)#y坐标 10 plotPoint.append([x, y]) 11 12 pygame.draw.lines(screen, [0, 0, 0], False, plotPoint, 1) 13 '''这里的五个参数作用: 14 第一:画线的表面 15 第二:颜色 16 第三:是否要画一条线将最后一个点与第一个点相连接,使形状闭合。 17 我们不希望正弦曲线闭合,所以参数为False 18 第四:要连接的点的列表 19 第五:线宽 20 ''' 21 pygame.display.flip() 22 running = True 23 while running: 24 for event in pygame.event.get(): 25 if event.type == pygame.QUIT: 26 running = False 27 pygame.quit()