turtle画图代码大全_Python:turtle伪并行画图的思考

turtle画图代码大全_Python:turtle伪并行画图的思考_第1张图片6月14日学习笔记今天李老师在群里提出了一个问题“如何实现turtle同步画坐标轴?”,大家围绕着个问题进行了讨论。一提到同步画我就想到scratch的多角色并行编程,包括vb,也都很容易实现并行。这或许是可视化编程的一个显著优势。纯代码编程肯定能够实现,因为可视化编程工具大都是纯代码编程开发出来的。但是怎么实现呢?吴老师根据机器人编程的经验提出了threading模块的思路,并提供了学习资料网址。李老师自己也找到了ontimer的仿多线程方法。这使我有了学习需求、方向和资料。我在学习和实践时,忽然来了灵感,另辟蹊径的解决了问题。 正所谓:

海龟数轴并行,问题需求讨论。

方向资料学习,实践灵感展示。

先来看一下实现的效果。

turtle画图代码大全_Python:turtle伪并行画图的思考_第2张图片

怎么样,是不是感觉上就是“同时”在绘制?其实这里用的是“伪同时”, 将划线任务分解为重复执行的若干个小任务。分解是计算思维的一个核心思想。来看代码你就懂了。
import turtle#t1=turtle.Turtle()t1=turtle.Pen()t1.pencolor('red')t1.pensize(3)#t2=turtle.Turtle()t2=turtle.Pen()t2.pencolor('blue')t2.pensize(2)t2.left(90)for i in range(1,201):    t1.fd(1)    t2.fd(1)
代码中有两个核心点:1)3、4和8、9行代码这部分内容也是今天群里讨论的一个内容,而在解决同时绘图问题时恰恰用到了。turtle.Turle() 和turtle  , turtle.Pen()和turtle,这两种表达方式究竟有什么不同?下图是许老师提出的相似问题Turtle和Pen究竟省略和不省略有什么区别?

turtle画图代码大全_Python:turtle伪并行画图的思考_第3张图片

说实话,在这之前我也搞不清楚究竟有什么区别。而且 固执的认为不需要去搞清楚,因为没啥用处。教学中不需要扣这么细的技术问题。但是在解决这个问题时,胡老师的解释让我豁然开朗。简单的说turtle是指所有的海龟,如果后面不加Turtle或Pen就默认为某一个海龟。术语 好像叫类的一个实例。但是当我们需要多个海龟一起完成任务时,就需要指定多个海龟了。例如海龟1和海龟2,可以用t1=turtle.Turtle()或t1=turtle.Pen()来代替,术语 好像就是海龟类的两个实例。这样t1和t2就分别代表两个海龟,我们只需要给他们分别下命令就可以了。 2)第14-16行是分解问题的核心因为程序代码在执行过程中的非常快,尤其是绘图的过程,默认速率下,我们的眼睛很难识别出是否是真正的同步画图,所以我们就用这种“欺骗”手段骗过眼睛,实现了“同时”画效果。 这种分解思维的讲解可以从人用两只手同时绘制坐标轴的过程分析入手,一般人两只手绘图的过程都是先一只手画一点,再另一只手画一点,交替画。而这就是计算机所擅长的。 如果将这个例子作为教学用例的话,这个分解思维应该作为重点。并在此基础上提出绘制对应的负半轴要求,加深理解。同时可以增加绘制数轴上的坐标点内容。这个方法写出来后,我发到了群里进行展示,小小的自得了一把。

感悟

在实际生活中,解决问题就好,用什么技术显得不那么重要。

将复杂问题分解为若干小问题利用循环解决的思维是计算思维的核心。

换个角度考虑问题,“伪”一下或许更好。

今天的学习完美体现了项目学习的过程,

如果学生能有这样的学习过程就完美了。

行走路上

turtle画图代码大全_Python:turtle伪并行画图的思考_第4张图片

信息技术教学的路很长,

行走路上与您一路同行!

● 感谢访问,欢迎交流

你可能感兴趣的:(turtle画图代码大全,伪代码的简单例子)