Python二次封装画圆函数绘制彩色同心圆

liftword3周前 (12-10)技术文章14

Python库默认的绘图circle函数绘制的圆是以当前海龟箭头方向左侧为圆心方向,y轴向上半径r的距离为圆心,绘制一个圆,这个方法不好用,每次都要算。学生课后问,是否可以使用圆心+半径的方法绘制,但是没有函数,只能自己封装一个。

思路如下:

(1)函数的参数(x,y,r)分别为圆心的坐标x和y,半径r。问题来了,可以用goto(X,Y)去圆心,但是导致绘图的圆心在y轴向上移动了r的距离,因此需要去goto(X,Y-r),这样就消除了半径的影响。

(2)箭头去圆心的时候,不知道箭头的方向,因此需要对海龟的箭头方法复位为0度,利用seth(0)函数。

(3)圆如果需要填充颜色,可以利用rgb模式传递颜色。

效果如下,代码如下:

import turtle
import random
#以(x,y)为圆心,画半径为r的圆,颜色为(cr,cg,cb)
def mycircle(x,y,r,cr,cg,cb):
    mytl1.penup()
    mytl1.goto(x,y-r)
    mytl1.seth(0)
    mytl1.pendown()
    mytl1.color(cr,cg,cb)
    mytl1.begin_fill()
    mytl1.circle(r)
    mytl1.end_fill()

mytl1=turtle.Turtle()
turtle.tracer(0) #画面顺完成
turtle.colormode(255) #颜色模式255的,RGB值
# mytl1.speed(0) #画面速度最快
# mytl1.hideturtle() #隐藏海龟箭头
mytl1.shape("turtle") #海龟形状

for i in range(10,0,-1):
    cr=random.randint(0,255) #随机颜色
    cg = random.randint(0, 255)
    cb= random.randint(0, 255)
    mycircle(60,60,i*20,cr,cg,cb)

mytl1.screen.mainloop()

相关文章

简单学python——turtle库画图形3——画圆、弧和正多边形

今天我们学习用turtle库画圆、弧和正多边形。首先,我们学习一个新的函数:circle(半径,角度,段数)。只填第一个参数的话,作用就是以这个参数为长度,画一个圆。填两个参数的话,就是以第一个参数为...

python海龟绘图turtle(六):实例-圆形与弧形

海龟绘图(turtle)是python的一个有趣的内置模块,是python语言的标准库之一,是入门级的图形绘制函数库。在海龟绘图中,使用circle()方法可以绘制圆形或者弧形。实例1、绘制一个红色的...