绘制如下图的,多角图形。思路。
(1)每个角是一个标准的等边三角形,把绘制等边三角形作为一个标准函数。
(2)观察图形,可以看出,画的三角形在不断的旋转和移动,因此第一步找到三角形画法起始点的海龟头旋转角度
(3)转动海龟头后,把海龟移动到新的绘制起点处。
(4)此时的海龟头刚好与绘制三角形的第一条直线的起始方向相反,因此在转动海龟头180度
(5)循环化三角即可
重点:如果计算,相邻两个三角旋转的角度。利用通用公式进行计算。先算内角,360/N,在算外角180-360/N
代码:
-
还有更多好玩的游戏和画图源码,关注公众号:学习py最风sao的方式
-
-
import turtle
-
-
L =
50
# 边长
-
N =
12
# 角的个数
-
jiaodu =
180 -
360 / (N)
# 每个三个型相对于上一个三角的角度,left转动
-
tl = turtle.Turtle()
# 海龟的对象
-
# tl.speed(0)
-
tl.screen.delay(
0)
# 绘画延时为0
-
-
-
def f1():
-
tl.fillcolor(
"yellow")
# 三角形填充颜色
-
tl.begin_fill()
# 填充开始
-
for i
in range(
3):
-
tl.fillcolor()
-
tl.forward(L)
-
tl.right(
120)
-
tl.end_fill()
# 填充结束
-
-
-
# 画外部的三角
-
for i
in range(N):
-
tl.left(jiaodu)
# 下一个三角形的角度
-
tl.penup()
-
tl.forward(L)
# 新三角的起始位置
-
tl.pendown()
-
tl.right(
180)
# 转动到画三角形的相对0度
-
f1()
-
-
# 画内部的多边形
-
tl.fillcolor(
"red")
# 填充颜色
-
tl.begin_fill()
-
for i
in range(N):
-
tl.left(jiaodu)
-
tl.forward(L)
-
tl.right(
180)
# 转动到画三角形的相对0度
-
tl.end_fill()
-
tl.screen.mainloop()
展现图
六角星
代码:
-
from turtle import * #引入turtle库
-
for i in range(
6):
-
forward(
100)
-
right(
120)
-
forward(
100)
-
left(
60)
-
#第一个循环画外部边线
-
-
for n in range(
6):
-
right(
60)
-
forward(
100)
-
#第二个循环画内部六边形
-
-
done() #窗口画完后不自动关闭
小风车
代码:
-
import
turtle
-
turtle
.speed(
"fastest")
-
turtle
.pensize(
1)
-
for
y
in
range(
200):
-
turtle
.forward(
3*y)
-
turtle
.left(
20)
-
turtle
.right(
175)
转载:https://blog.csdn.net/A_7878520/article/details/116088265
查看评论