今天是六一儿童节~身为我们班的信息担当的我为我们班同学准备了一个小惊喜,你确定不来看看吗(turtle库实现:送给同学们一朵小红花) 您所在的位置:网站首页 毕业快乐的画 今天是六一儿童节~身为我们班的信息担当的我为我们班同学准备了一个小惊喜,你确定不来看看吗(turtle库实现:送给同学们一朵小红花)

今天是六一儿童节~身为我们班的信息担当的我为我们班同学准备了一个小惊喜,你确定不来看看吗(turtle库实现:送给同学们一朵小红花)

2023-06-06 18:06| 来源: 网络整理| 查看: 265

目录

一.实现思路

二.花朵的实现方法

 三.花朵的茎实现方法

四.画出第一片叶子的方法

五.画出第二片叶子的方法

六.如何设置页面主体

结尾

今天呢,也是一年一度的六一儿童节(虽然各位大佬可能不过,但是我还是要过的),在我们六年级过的时候,我们班同时也举行了毕业典礼,为了这个毕业典礼,我写了一晚上代码(这就是昨天没更新的原因),也就写了两个小时就写完了,所以今天我们用Python里的turtle库(随便写的,要不然我怎么会写turtle库呢)实现一个小红花吧,送给我们班的同学们~(千万不要让老师知道我把电脑控屏软件给破解了,极域电子教室,某些人别跟信息老师说)

也是非常的水~ 

一.实现思路 第一步:画出花朵主体第二步:画出花朵的茎第三步:画出第一片叶子第四步:画出第二片叶子第五步:设置画面主体 二.花朵的实现方法

先来看一眼效果:

首先我们定义一个函数,叫做flower,然后我们就要用这个函数画花瓣了 

我们首先来画花瓣的弧,我们先求出弧的长度,即

2*\pi *r*\left | angle \right |/360

这时我们就可以求出要多少个才能画出这个大花瓣,即:

int(arc_length / 4) + 1

这个是所有弧的长度,要想知道每一个弧的长度,我们就要这样:

step_length = arc_length / n

这时每一个角的度数就也可以求了

float(angle) / n

现在我们正式画花瓣。首先这个笔在起步时要慢,因为这是一个弧形,并且要慢慢拐弯,也就是如下代码:

def p_line(t, n, length, angle): for i in range(n): t.fd(length) t.lt(angle) t.lt(step_angle/2) p_line(t, n, step_length, step_angle) t.rt(step_angle/2)

注意,如上代码只会画半个弧,要想画成一个花瓣,我们就可以使用一个for循环来控制

for i in range(2): arc(t, r, angle) t.lt(180-angle)

整理一下,以下是完整画花瓣的代码:

import turtle import math def p_line(t, n, length, angle): for i in range(n): t.fd(length) t.lt(angle) def arc(t, r, angle): arc_length = 2 * math.pi * r * abs(angle) / 360 n = int(arc_length / 4) + 1 step_length = arc_length / n step_angle = float(angle) / n t.lt(step_angle/2) p_line(t, n, step_length, step_angle) t.rt(step_angle/2) def petal(t, r, angle): for i in range(2): arc(t, r, angle) t.lt(180-angle) def flower(t, n, r, angle, p): for i in range(n): petal(t, r, angle) t.lt(p/n) def main(): window= turtle.Screen() #creat a screen window.bgcolor("white") window.title("draw a flower") lucy= turtle.Turtle() lucy.shape("turtle") lucy.color("red") lucy.width(3) #lucy.speed(10) flower(lucy, 7, 60, 100, 360) main()  三.花朵的茎实现方法

 首先我们可以设置画笔颜色,用pen.color语句

注意,此时我们的笔是朝向右侧的,所以我们需调整一下方向,用pen.right语句

最后我们画一条直线就行,用pen.forward语句

代码如下:

lucy.color("brown") lucy.rt(90) lucy.fd(200) 四.画出第一片叶子的方法

首先我们先来设置一下笔的方向,粗细和颜色

lucy.width(1) lucy.rt(270) lucy.color("green")

 然后我们写一下画叶子的函数

def leaf(t, r, angle, p): t.begin_fill() t.down() flower(t, 1, r, angle, p) t.end_fill()

最后我们再来画一下纹理

lucy.color("black") lucy.fd(30) lucy.lt(180) lucy.fd(30)

这样就完事了

五.画出第二片叶子的方法

因为这里使用的是函数,所以和上面大相径庭,大家可以看看

lucy.rt(120) lucy.color("green") leaf(lucy, 40, 80, 180) lucy.color("black") lucy.rt(140) lucy.fd(30) lucy.ht() 六.如何设置页面主体

其实就是固定的框架,大家看一下就行

其实就是一些背景颜色,弹窗名字,设置画笔的宽度,颜色,样式等

window.bgcolor("white") window.title("draw a flower") lucy= turtle.Turtle() lucy.shape("turtle") lucy.color("red") lucy.width(3) 结尾

以下是完整代码:

import turtle import math def p_line(t, n, length, angle): for i in range(n): t.fd(length) t.lt(angle) def polygon(t, n, length): angle = 360/n p_line(t, n, length, angle) def arc(t, r, angle): arc_length = 2 * math.pi * r * abs(angle) / 360 n = int(arc_length / 4) + 1 step_length = arc_length / n step_angle = float(angle) / n t.lt(step_angle/2) p_line(t, n, step_length, step_angle) t.rt(step_angle/2) def petal(t, r, angle): for i in range(2): arc(t, r, angle) t.lt(180-angle) def flower(t, n, r, angle, p): for i in range(n): petal(t, r, angle) t.lt(p/n) def leaf(t, r, angle, p): t.begin_fill() t.down() flower(t, 1, r, angle, p) t.end_fill() def main(): window= turtle.Screen() window.bgcolor("white") window.title("draw a flower") lucy= turtle.Turtle() lucy.shape("turtle") lucy.color("red") lucy.width(3) #lucy.speed(10) flower(lucy, 7, 60, 100, 360) lucy.color("brown") lucy.rt(90) lucy.fd(200) lucy.width(1) lucy.rt(270) lucy.color("green") leaf(lucy, 40, 80, 180) lucy.rt(140) lucy.color("black") lucy.fd(30) lucy.lt(180) lucy.fd(30) lucy.rt(120) lucy.color("green") leaf(lucy, 40, 80, 180) lucy.color("black") lucy.rt(140) lucy.fd(30) lucy.ht() window.exitonclick() main() 祝所有人儿童节快乐~天天开心~


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有