大橙子网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Python如何绘制同心圆

这篇文章主要介绍了Python如何绘制同心圆,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

我们提供的服务有:成都做网站、网站建设、微信公众号开发、网站优化、网站认证、本溪ssl等。为成百上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的本溪网站制作公司

前言

屏幕一共4行6列,每一个位置放了一个同心圆,圆环的颜色不一样。

每次按下鼠标,重新绘制。

这里学习两个概念:循环和随机

Python如何绘制同心圆

循环

import pgzrun

def draw():
    screen.fill('white')
    for r in range(1, 201, 10):
        screen.draw.circle((400, 300), r, 'black')

pgzrun.go()

第4行:屏幕白色

第5行:循环,半径开始是1,每次加10,直到201

第6行:绘制圆,圆心位置是400,300,半径是r,颜色是黑色

每次循环画圆圈,相同的是圆心和颜色,不同的是半径

年年岁岁花相似,岁岁年年人不同

随机数

import random
n = random.randint(1, 5)
print(n)

第2行:产生一个1~5的随机数

随机就是不确定,每次都不确定,就像我们抛硬币,或是从扑克牌抽一张,结果是啥,不确定

漂亮的圆环

Python如何绘制同心圆

import pgzrun
import random
def draw():
    screen.fill('white')
    for r in range(250, 0, -10):
        screen.draw.filled_circle((400, 300), r,\
        (random.randint(0, 255), random.randint(0, 255),\
        random.randint(0, 255)))
def on_mouse_down():
    draw()
pgzrun.go()

第5行:圆的半径从大到小,最大是250,最小是10,每次减少10

第6行:画圆,圆心固定400,300,半径是r,也就是先画250,再画240,直到10。这里用的是filled_circle,也就是会用颜色填充圆。

填充圆的颜色是RGB,RGB三原色的三个参数值都是随机变量。

第9行:当鼠标按下时,重新绘制。

美丽的圆圈画

怎么画4行6列的圆圈呢?

这就要用到多个循环了,最里一层循环是画一个圆圈,外边一层循环是画一行,不同的是圆心的横坐标,最外一层循环是画一列。

import pgzrun  # 导入游戏库
import random  # 导入随机库
WIDTH = 1200   # 设置窗口的宽度
HEIGHT = 800   # 设置窗口的高度
R = 100        # 大圆圈的半径

def draw():    # 绘制模块,每帧重复执行
    screen.fill('white')  # 白色背景
    for x in range(R, WIDTH, 2*R): # x坐标平铺遍历
        for y in range(R, HEIGHT, 2*R):  # y坐标平铺遍历
             for r in range(1, R, 10):  #  同心圆半径从小到大遍历
                 # 绘制一个填充圆,坐标(x,y),半径R-r,颜色随机
                screen.draw.filled_circle((x, y), R-r, \
                 (random.randint(0, 255), random.randint(0, 255), \
                 random.randint(0, 255)))

def on_mouse_down(): # 当按下鼠标键时
    draw()  # 调用绘制函数

pgzrun.go()  # 开始执行游戏

感谢你能够认真阅读完这篇文章,希望小编分享的“Python如何绘制同心圆”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


文章名称:Python如何绘制同心圆
链接地址:http://dzwzjz.com/article/pjocsd.html
在线咨询
服务热线
服务热线:028-86922220
TOP