• Python 用大量小矩形来画曲线


     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()

  • 相关阅读:
    LINUX挂接移动硬盘
    LINUX挂接光盘镜像文件
    Parted:2T以上磁盘分区工具(LINUX挂载2T以上磁盘)
    LINUX文件系统操作命令
    linux 文件类型的颜色
    LINUX常用操作命令和命令行编辑快捷键
    telnet- Linux必学的60个命令
    Netstat- Linux必学的60个命令
    linux服务之maven
    PHP 设计模式 笔记与总结(4)PHP 链式操作的实现
  • 原文地址:https://www.cnblogs.com/letianpaiai/p/13797810.html
Copyright © 2020-2023  润新知