王剑编程网

分享专业编程知识与实战技巧

用python turtle画基础图形代码分享


今天这个文章就分享一些用python turtle画基础图形的代码,喜欢的朋友可以收藏关注保存。

首先是最基本的正多边形。

这里包含两个参数,n为边数,a为边长。参数都设置了默认值,直接调用函数就行,也可以根据需要自己传入参数。

import turtle

t = turtle.Turtle()

def f(n=3, l=100):

for _ in range(n):

t.forward(l)

t.left(360 / n)

f()

turtle.done()

然后是正星形,参数n为边数,a为星形尖角的角度,long为边长。关于星形的代码思路我们在之前的文章里有专题讲过,感兴趣的朋友可以看下之前的那个文章。

import turtle

t = turtle.Turtle()

def star(n=5, a=60, l=100):

b = (n * 2 - 2) * 180 / n - a

t.setheading(90)

t.left(b / 2)

for _ in range(n):

t.forward(l)

t.left(a - 180)

t.forward(l)

t.left(b + 180)

star()

turtle.done()

正心形, 参数l为边长。

import turtle

t = turtle.Turtle()

def hart(l=120):

t.left(45)

t.forward(l)

t.circle(l / 2, 180)

t.right(90)

t.circle(l / 2, 180)

t.forward(l)

hart()

turtle.done()

平行四边形,参数a,b为两条边的长度,o为一个夹角的角度

import turtle

t = turtle.Turtle()

def p(a=80, b=100, o=45):

for _ in range(2):

t.forward(a)

t.right(180 - o)

t.forward(b)

t.right(o)

p()

turtle.done()

椭圆,参数a,b为长轴和短轴的长度,y_1为y轴偏移值,用到了math.cos()和math.sin(),需要导入math模块。

import turtle

t = turtle.Turtle()

def ellipse(a=100, b=50,y_1=0):

for angle in range(360):

rad = angle * 3.14 / 180 # 将角度转换为弧度

x = a * math.cos(rad) - a

y = b * math.sin(rad)+y_1

t.goto(x, y)

ellipse()

turtle.done()

圆柱体,参数a为底部椭圆的半径,参数h为高度

import turtle

t = turtle.Turtle()

def yz(a=100,h=200):

ellipse(a, a / 6)

t.goto(0, h)

ellipse(a, a / 6, h)

t.penup()

t.goto(-a*2,h)

t.pendown()

t.goto(-a * 2, 0)

yz()

turtle.done()

圆锥体,参数a为底部椭圆的半径,参数h为高度

import turtle

t = turtle.Turtle()

def z(a=100,h=200):

ellipse(a,a/6)

t.goto(-a, h)

t.goto(-a*2, 0)

z()

turtle.done()

球体,参数r为半径,需要用到前面的画椭圆的函数

import turtle

t = turtle.Turtle()

def circle(r=100):

t.left(90)

t.circle(r)

t.right(90)

ellipse(r,25)

circle()

turtle.done()

立方体,参数long为边长,需要用到前面的正多边形和平行四边形函数

import turtle

t = turtle.Turtle()

def lft(long=100):

f(4,long)

t.left(90)

t.forward(100)

t.right(45)

p(long/2,long,45)

t.forward(long/2)

t.right(45)

p(long, long/2, 45)

t.forward(long)

t.right(90)

p(long, long / 2, 135)

t.forward(long)

t.right(45)

p(long/2, long, 135)

lft()

turtle.done()


还有哪些想画的基础图形也可以留言~

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言