Python turtle绘制阴阳太极图代码解析


本文详细分析如何使用Python turtle绘制阴阳太极图,先来分解这个图形,图片中有四种颜色,每条曲线上的箭头表示乌龟移动的方向,首先从中心画一个半圆(红线),以红线所示圆的直径作半径画一个校园,半径为红线所示圆半径的0.15倍(蓝线),之所以选择0.15倍,是因为这样嵌入红圆内的小圆直径和红圆直径接近黄金分割。

代码
导入turtle库
import turtle

创建画布
window = turtle.Screen
......
window.exitonclick()

创建画笔
bage = turtle.Turtle()

设置画笔颜色
bage.color("black", "black")

设置画笔的宽度
bage.width(3)

准备开始填充图形
bage.begin_fill()

画一个半径为radius/2,弧度为180的半圆,画红线所示半圆
radius = 100
bage.circle(radius/2, 180)

画黄线所示的圆,半径radius,弧度180半圆
bage.circle(radius, 180)

将画笔方向旋转180度
bage.left(180)

画绿线所示半圆,画一个半径为radius/2,弧度180半圆,此时半径值为负
bage.cirle(-radius/2, 180)

结束填充
bage.end_fill()

画笔向左旋转90度,正好指向画板上方
bage.left(90)

抬起画笔,在运动时不会留下痕迹
bage.up()

向前移动radius0.35,这样小圆边线距离大圆边线上下各radius0.35

bage.forward(radius*0.35)


隐藏画笔
bage.ht()

完整代码

import turtle

window = turtle.Screen()

bage = turtle.Turtle()

radius = 100
bage.width(3)
bage.color("black", "black")
bage.begin_fill()
bage.circle(radius/2, 180)
bage.circle(radius, 180)
bage.left(180)
bage.circle(-radius/2, 180)
bage.end_fill()

bage.left(90)
bage.up()
bage.forward(radius*0.35)
bage.right(90)
bage.down()
bage.color("white", "white")
bage.begin_fill()
bage.circle(radius*0.15)
bage.end_fill()

bage.left(90)
bage.up()
bage.backward(radius*0.7)
bage.down()
bage.left(90)
bage.color("black", "black")
bage.begin_fill()
bage.circle(radius*0.15)
bage.end_fill()

bage.right(90)
bage.up()
bage.backward(radius*0.65)
bage.right(90)
bage.down()
bage.circle(radius, 180)
bage.ht()
   
window.exitonclick()

效果图如下:

Python turtle绘制阴阳太极图代码解析

https://www.linuxboy.net/topicnews.aspx?tid=17

linuxboy的RSS地址:https://www.linuxboy.net/rssFeed.aspx

本文永久更新链接地址:https://www.linuxboy.net/Linux/2019-03/157769.htm

相关内容