绘制向左三角形_弧形的绘制

弧形的绘制

学习目标

  • 学习circle函数的第二个参数的使用
  • 绘制花瓣图形

a986cf9329b466fb69403f44c81773f8.png告知学生本节课结束将要绘制的图形,激发学生学习兴趣。

内容分析

弧形在初中也是属于比较难的内容,所以我们不能从纯粹数学的角度来学习,需要引入运动的思想来看到turtle库中圆形和弧形的绘制:circle(100)除了可以是绘制半径为100的圆之外,还可以用运动的思想描述为距离某个点100像素转一圈,这样,弧形的绘制就是围绕特定的点转指定的度数,这个跟学生的日常经验相匹配,这样画圆和画弧形在思路上就是一致的,不过是读数的差别,而画圆360°可以省略。

可以通过 heading 方法让学生观察小乌龟的角度,从而理解画弧与角色旋转角度的关系。

from turtle import *

print(heading())
circle(200, 70)
left(110)
print(heading())
circle(200,70)
left(110)

done()

而且这种方式绘制花瓣的好处是,跟绘制三角形一样绘制完会回到初始状态,有利于花朵的绘制, 小乌龟绘制图像其实也是基于运动的思想,那么小乌龟绘制弧形对应的圆心角与旋转角度的关系通过 heading 方法来观察就是了,严格的证明对低年级来说是很困难的。

录播课的关卡设计,要么是驻点答题的形式,要么是code.org加上内嵌的视频,要么是讲解+练习+讲解+练习,个人倾向于最后一种。

关卡设计

L1:复习绘制圆

e1d83b9858f2f058a242259ba44f601a.png提示:图中月的半径是100,请你写出绘制这个圆的程序。观察乌龟是按顺时针运动还是逆时针运动。意图:带领学生复习用circle绘制圆。本关可以给学生必要的提示,可以是circle的描述,也可以是小视频或者动画。

L2:circle参数为负数

16091d7d263f87e6fa95dceb772fdee4.png提示:这两个圆的半径都是100,请用两行代码画出上述图案。意图:考察circle第一个参数为负数的情况。学生成功后提示,circle函数的参数无论正负,都可以画一个圆,乌龟都是在半径为100的圆上走了一圈,区别是如果circle第一个参数是整数,那么就在乌龟的左边画圆;如果是负数,就在乌龟的右边画圆。

L3:考察对乌龟旋转的理解

16091d7d263f87e6fa95dceb772fdee4.png提示:请用三行代码画出上面的图案,提示如下

circle(100)
left()
circle()

意图:三行代码,需要旋转乌龟。

L4:考察对于乌龟旋转的理解

854f504e7bee9b358a3ad3eebd1b4c0a.png提示:三个圆的半径都是100,你能够画出这个图形么?画完每个圆,乌龟旋转的角度是相同的,乌龟需要旋转多少度呢?意图:考察画完图形之后,旋转,为画滑板做准备。

L4:六个圆组成的图案

1138d3df12a55bc79f53fecdbe616603.png提示:图中6个圆的半径都是100,请用最少的代码画出来。意图:部分学生可能会用循环。

L5:再次回归cirlcle函数

讲解:circle可以画圆,第一个参数的正负决定了在乌龟当前朝向的左边画圆,还是右边画圆。如果正数和负数的数值相同,比如都是100,那么画出的圆大小是相同的。9758c97ca0ad149f4113732d3d74d56c.pnghttps://pic3.zhimg.com/v2-8fd2d47a20aaad898aa8ebdb8800b0ca_b.webp

我们知道 circle(100) 意味着在一个它左边的半径为100的圆上走了一圈,也就360°。如果乌龟不走一圈,只走90°的话,走出来的是什么图形呢?

b78515de64addccaee15adf10c598b7e.png
image.png

L5:学习circle第二个参数

dc1fb6131137bb87354628d01780ba36.png提示:如果乌龟只转90°而不是一圈,那么应该是画框的这个形状,我们知道一圈是360°,那么90°是1/4圈,所以应该是画框的图3。猜一下第二幅图是多少度?对了180°。

我们不仅可以命令小乌龟围着指定半径的圆转一圈,还可以让乌龟转指定的角度。其实我们如果只告诉乌龟圆的半径,乌龟就默认转一圈,我们也可以告诉他需要转多少度,怎么告诉呢?circle命令还可以接受第二个参数。circle(100,90) 我们知道circle是命令的名称,参数放到命令后边的括号里,在括号里如果需要提供两个参数,只需要把这两个参数都放到括号中,并用逗号分开就可以了。比如 circle(100,90) 就是告诉乌龟,围绕半径为100的圆转90度。试着写出围绕半径为100的圆转100°的命令。

L6:圆弧的概念

小乌龟围绕一个圆转特定角度形成的图形叫做弧形。乌龟的起始位置是弧形的起点,乌龟终止的位置是乌龟的终点。一段圆弧的终点可以是另外一段圆弧的终点。所以小乌龟从A点爬到B点形成的圆弧就是弧AB,从B点爬到A点形成的弧形就是弧BA。34933e081b53aec2bc0d9dd17a7c9c15.png试着让乌龟连续三次围绕上面这个半径为100的圆转120°的命令,仔细观察小乌龟的运动。

circle(100, 120)
circle(100, 120)
circle(100, 120)

意图:让学生理解,画弧的起点可以是任意的。

L7:第二个参数为负

34933e081b53aec2bc0d9dd17a7c9c15.png提示:圆弧AB是小乌龟从A点爬到B点,并且圆弧AB是小乌龟沿着圆转了80°。72498676fa153cadb9b4fb9568a8a9f5.png那么让小乌龟错从B爬到A的命令应该怎么写呢?从A到B逆时针转了80°,从B到A其实转过的也是80°,区别在于方向相反,我们可以给度数加一个负号,-80°,表示,乌龟从B到A顺时针转了80°,命令就是 circle(100,-80)注意作为参数,不需要写°。

L8:练习第二个参数的使用

f7aa550603de587160df9f9ce9bf5b65.png提示:小乌龟从弧形的起点A爬到重点B爬了180°,你能写出让小乌龟从A爬到B,再从从B退回A的代码么?思考下小乌龟在B点朝向的角度是多少?(90°)

L9:练习第二个参数的使用

3a01463567b2b8fef4debded7876e75d.png提示:小乌龟从弧形的起点A爬到重点B爬了180°,你能写出让小乌龟从A爬到B,再从从B退回A的代码么?思考下小乌龟在B点朝向的角度是多少?小乌龟开始的角度是0°,绕着圆转了180°后,朝向180°;转了90°后,朝向80°,是不是从水平方向开始,乌龟转了多少度,就朝向多少度呢?我们可以用 heading() 命令来查看小乌龟任意时刻朝向的角度。

circle(100,13)
print(heading())
# 输出13

你可以任意改变第二个参数的值,发现结论是成立的;如果是负数,比如-30,那么朝向就是330了,360°减去30就是330了。

L10:绘制单个花瓣

1c2c9e5c20d0867591e09e7d50ecab35.png提示:观察上面的图形,这个图形关于直线AB对称,如何绘制这个图形呢?我们来分析下运动的过程,乌龟从A爬到B是顺时针,从B爬到A也是顺时针,所以弧AB和弧BA是沿着相同的方向转过了相同的度数形成了这个图形。37ac86b7fc71906da84178b41cf3c756.png如果乌龟沿着直线从A开始,头朝B爬到B,在从B开始,头朝着A爬到A,那么只需要在B点乌龟需要旋转多少度呢?(演示动画)想象下,你从A走到B,如果想面向A从B走到A的话,需要向后转180度。c65744277870d634dcd971edd2d5b8ad.png我们来观察上面这个图,实际上,蓝色的弧AB转180°就可以跟或弧AC重合了。换句话说,蓝色的弧AB是乌龟从水平向右开始,围绕半径为100的圆逆时针转了80度形成的。而弧AC是从水平向左开始,围着半径为100的圆逆时针转了80°形成的。如果小乌龟在B点也转到水平向左也就180°,那么沿着半径为100的圆转逆时针转80°也就画出跟弧AC一样的弧了。我们知道到了B点,小乌龟的朝向跟转过的角度相同,都是80°,想要转到水平朝右的180°,只需要转180-80度就可以了。

circle(100,80)
left(180-80)
circle(100,80)

运行上述代码,观察小乌龟的运动。尝试改变小乌龟转过的角度,观察绘制出的图形。2ba862347bc6560ac66ee66526241c83.png不同角度绘制的图形可能如上图。

L11:乌龟转回原来的角度

提示:我们知道乌龟绘制正多边形的时候,都会转回原来的角度,我们也要转回去。用 heading() 方法查看下面代码执行后的朝向。

circle(100,80)
left(180-80)
circle(100,80)
print(heading()) # 260°

我们知道想要小乌龟转回元老的角度,只需要转一圈就可以了,画完的时候小乌龟转了260°,只需要再转360减去260°等于100°就可以转回初始位置了。

circle(100,80)
left(180-80)
circle(100,80)
print(heading()) # 260°
left(360-260)
print(heading()) # 260°

其实两次旋转的都是100°,加上小乌龟在圆弧上转的80°,相当于每次转了180°,跟从线段A到B再向后转走到B类似,我们知道,180°乘以2是360°,而画正三角形是每次转120°,乘以3是360°,画正四边形是每次转90°,乘以4是360°,以此类推,你能发现什么规律么?cbfd90101d2533f86222a6460f95ee98.png拓展:你能绘制这个图形么(选做),跟绘制正三角形有点类似哦,其实画每个弧都是转120°,只不过,小乌龟先转了一定的读数呢。

L12:画花瓣

提示:因为每次画完,单个花瓣,小乌龟都会回到原来的朝向,我们在画完再旋转一个角度,并再画一个花瓣,就可以画出有意思的图形了:

from turtle import *

speed(0)

circle(100, 70)
left(180 - 70)
circle(100, 70)
left(180 - 70)

left(120)

circle(100, 70)
left(180 - 70)
circle(100, 70)
left(180 - 70)

left(120)

circle(100, 70)
left(180 - 70)
circle(100, 70)
left(180 - 70)

left(120)

运行代码会得到下面的图案,尝试把70度改成其他角度,观察绘制的图案;尝试改变画每个花瓣画完后旋转的角度。d02d26b16b12c54f6337d5ae6663519b.png3dd40c6cf5315367d867f282adea2daf.png01ca98efb4c790b0126b84b0d4540d12.png827be2b9c2b8ff378739741183fe7d2a.png可以先用复制代码的方式画出图案,然后试着用单个循环简化代码。

bonus

from turtle import *

speed(0)
def a(n,angle):
    for i in range(n):
        circle(20,angle)
        left(360/n-angle)
a(10,270)

done()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值