点关注不迷路,这里是最适合小朋友们和小白们学习编程的地方,多评论,多转发,好好学习,天天向上。 同学们大家好,上节课呢,我们通过调用长方形的函数绘制了一个著名的法国国旗,那好,那我们今天呢,我们会把上节课内容再进行一次巩固,同时我们绘制一个稍微复杂一点的丹麦国旗,我们先执行程序看一下, 其实丹麦国旗呢,也不是特别复杂,它是有红色底,然后上面有个白色的十字架构成。如果我们同学呢,呃,比较喜欢研究国旗,你会发现其实北欧很多的国家的国旗是有这个十字架的,嗯,有一点宗教色彩哈, 我们看一下我们丹麦国旗他的一个比例特点,首先我们说丹麦国旗他是一个长方形,他的长宽比呢是 三十七比二十八,是一个比较特殊的这样的一个笔直,那然后呢,我们啊,上中下红色、白色,红色笔直是三比一比三,然后我们在左上角的这个位置呢,是一个 红色的正方形,那包括左下角也是一个正方形。那好,那我们今天呢,就把我们的这个啊画布哈 设定为长为三百七十,那宽为两百八十。我们中高年级哈,我们的学生如果学了比例,我们就知道这个,其实我们就是把三十七比二十八呢,等比例扩大了一点, 那我们觉得如果觉得国企太小的话呢,我们还可以继续变大,就是三百七十,我们可以变成啊三百七十再去乘二,然后两百八十呢,我也乘二,这样的话我整个国企的比例是不变的,那今天我们 就用三百七十比上两百八十,那如果我们的长宽是三百七十比上两百八十,我们来一起计算一下哈,那我们每个位置他们的 啊宽度以及我们对应的坐标。首先呢,这边是三比一比三,也就是说我们的竖向我们是被分成了几份呢?分成了一共是七份,那也就是二百八十,我们要分成七份,那分成七份,每一份就是四十四七。二百八十, 那分成四份分成,呃,七份,每份四十,那我们中间的白色部分啊,中间白色部分,那么它的宽度就是多少,就是四十。 哎,那上面的三份三四就是一百二十,那下面也是一百二十。因为上下是两个正方形,所以这里面也是一百二十。而这两个 长方形他们的宽度是一样的,就是十字架的,他们的宽度是一样的,所以说这边也是四十,那一百二十,四十是一百六十,那三百七十减去一百六十是二百一十,也就是说我们在右边的这个长方形,他的长是两百一十,而宽度还是一百二十。 我们很轻松的,就根据我们这个笔直哈,就是把我们丹麦国旗的每一部分的宽度我们都计算出来了。 那计算这些宽度有什么用处呢?因为计算这些宽度啊,我们就可以得到我们想要得到的几个点的坐标,那因为这个底色是红色,我我选一种颜色哈,绿色好了,我们来标志我们的坐标。 那好,那首先呢,我们可以先把我们的国旗的底色,也就是我们这个画布的底色调成红色,那么我们只需要画出两个长方形,第一个长方形,我们从 a 点位置开始画,第二个长方形,我们可以从 b 点位置开始画。那我们的画第一个长方形的时候,我们横向画多少呢?我们就画三百七十,然后我们纵向就画四十就可以了,那这时候我们只要知道 a 点位置的坐标是不是就可以了? a 点位置坐标我觉得很容易找到,因为什么呢?因为我们的白色宽度是多少?是四十,所以说 a 点坐标,首先他的 x 坐标我们是知道的,就是我们的,哎,数的一半,也就说我们一共 从左到右是三百七十,那么从中间啊,到最左边就是三百七十,除以二就是一百多少啊?一百七十五,一百八十五,对不对?一百八十五,因为一百八十,三百六十,一百八十五,所以说那我这边他的 x 坐标就是负的一百八十五,那我还坐标呢,就是 是四十的一半,也就是二十。那我们找到了 a 点的坐标,那这时候我们就再找 b 点的坐标,那 b 点坐标,我觉得他的 y 坐标我们是很容易找的,就是二百八十的一半,也就是一百四十。那 x 坐标呢?我觉得也是很容易找, 因为什么呢?因为从头上到 b 点的位置,我们知道是一百二十,如果从中间啊,我们说从中间到最左边,我们是三百七十的一半,也就是说一百八十五,那一百八十五减掉一百二十的话,那么我们就得到六十五, 所以说啊,那 b 点的位,呃,坐标矮,约负的六十五,因为负的六十五,再去减掉一百二十,就得到负的一百八十五号,那我们已经得到了 a 点和 b 点的坐标,我们就可以完成我们今天的一个国旗的创作, 就是今天啊,其实我们分析问题啊,反而是更重要一点。那首先呢,我们还是通过定义了一个, 定义了一个我们的一个长方形的函数,这里面我们还是设定了两个参数, a 和 b, 那 a 就代表我横向画的,因为我们现在是面朝右哈,横向画的,那呃, b 呢?就是我纵向画的,他不一定 a 就是 b 定,呃,不一定是长,对吧?我横向画的,那你看,比如说我画竖向的这个, 哎,竖向的这个长方形的时候,那我的 a 就比 b 要小,那画横向的时候 abb 要大很多,是不是?那好,那我们这时候呢,长方形的这个函数我们就不说了,我觉得非常的简单,哎,然后我们就开始去 啊,调用我们的长方形的函数。第一步我们把我们的 screen size, 也就是把我们的画布的大小设为三百七,两百八,底色设为 red 红色,然后速度调为零,好判啊。那这时候我们就会来到我们第一点,也就是我们现在鼠标位置,那刚才我们已经计算出来了,是不是 x 等于负点一百八十五万等于二十。在这边我们 用白色来绘制什么呢?来绘制一个哎,长为三百七十, a 为三百七十,然后 b 为四十的长方形,然后我们再去到我们的刚才的 b 点,现在鼠标位置, 那这个位置刚才我们已经计算出来了, x 等于负的六十五,而 y 等于一百四十。然后绘制一个啊,横为四十而竖为两百八十的长方形,这时候我们就完成了我们的丹麦国旗。那好,那我们说啊,哎,要解决一个问题,分析问题的过程很重要,这里面可能会用到很多的数学知识。那同学们加油去绘制好我们的丹麦国旗,再见。
粉丝5.8万获赞10.2万
同学们大家好,我们继续 python 绘图库的学习。今天我们将要一起绘制一个非常古老的国旗,丹麦国旗。丹麦国旗是目前世界上存在的最古老的一面国旗。 我们先来看一下丹麦国旗的样子,它的底是一个红色,然后在中间呢有一个十字架, 上面是我们丹麦国旗的一些它的参数。好,那今天呢,我们先不去分析丹麦国旗它的画法,我们今天先要学习一个新的知识点, 函数,也就是说我们今天需要通过定义一个函数,并调用函数。哎,解决我们画国旗的问题,很多同学说了,老师 啊,我没听过函数呢,是不是很复杂?不要着急,我们今天稍微一讲,我们同学们都能明白。我们先来回顾一下我们原来的内容。好,首先我们先导入我们的 turtle 库, 我们使用 t 点 d n 一,让我们的窗口保留下来。嗯,好,这个是我们的窗口,把它放到右边一点。 我们上节课呢,已经非常熟练的能够使用绘读库绘制长方形。那现在呢,我们来一起先去巩固一下长方形的绘制。然后呢,我们再讲到底什么是函数。 如果说我们想绘制一个长方形,我们可以使用循环把移动右转的指令 复做几次就好了。我们先去画出一条边,再去画出另外一条边,然后再重复做两次。那我们使用 for i in red 重复这样两次冒号,注意,冒号以后我们这边会有一个缩进。好,那这时候我们使用 t 点 forward 向前走,比如说我们要绘制一个长为一百,宽为五十的长方形,我们使用 type right 九十, 然后我们再移动 f, r, w, l, d, 再移动一五十,啊,好,然后我们再去右转九十,那这时候我们就可以画一个长方形了,我们来点运行 a, 我们发现长方形我们画好了。如果说我们希望把这个长方形做填充,那 我们第一个指令是,首先我们先落笔喷到那同学说了,老师,这里面我们不落笔也可以。是的,但是我为了把这读指令写的完整,我们就落笔,然后我们使用开始填充, begin fill 开始填充,然后再画好以后呢,我们使用 t 点儿 and feel 结束填充,然后再使用 t 点儿喷 up 台笔,也就是说这个我们可以理解为是一组指令,它的作用就是来画长方形的。 嗯,我们这时候用这组指令画了一个长方形,首先呢,我们先把我们的这个速度啊调整到快一点, t 点 speed, 我们还记得吗?我们把速度调到零的时候,这时候我们是最快的,一是最慢的。好,那现在我们长方形 快画好了,那上节课的时候我们通过画长方形绘制了,嗯,德国国企,法国国企等等,是不是?那,那我们,哎,什么是函数呢?我们说说半天呢,老师你还没有说什么是函数呢?首先我们先认识一下函数这两个字哈, 来写出函数, 我相信呢,很多小朋友是第一次听到函数这样的词,是不是?那什么是函数呢?我们可以理解函数呢,就是能够实现某一个功能的一组指令。 这句话听起来可能还是有一点点不太容易理解,是不是?那现在我们就来看一下我们的左边,那这个呢,是不是能够用这组指令就画出一个 长方形,也就是说我们的左边的读指令,是不是我们就可以理解为它的作用就是画长方形? 那好,那现在呢,我们就把这组指令,如果我们把它打包一下,那么它就可以变成一个函数。嗯哼,好,那我们就初步理解了,说,诶,函数啊,其实啊,我们可以理解为就是能够实现某一个功能的这样的一组指令。 那,那现在我们来学习一下如何在我们的 python 中定义函数。我们认识一个关键词, d, f, d, f 是哪个 单词的缩写呢? a 是 d, f, i, n, e, define, 来,同学跟老师一起读一下 define, 那它的意思是定义,也就是说在我们的 英语里面,它的意思就是定义,我们取了前三个字母,而且这三个字母啊,嗯,非常特殊。 a, b, c, d, e, f 是不是连在一起的?同时呢,在我们的键盘中,我们会发现 d, e, f 也是连在一起的,很好输入哈,那后面就是我们的 哦,这个工具的名称长方形,我们就起了个叫长方形,这个叫函数名,你可以任意起啊,和我们的变量名等等。好,我们是一样的规则 啊,你可以写个自己喜欢的这样的一个工具的名称后面有括号,函数,后面的括号必不可少,然后后面我们加一个冒号, 这个括号里呢可以填东西,也可以不填东西,这个里面的东西叫做参数。我们一会会讲到 这时候我们的函数 define 啊, define, 长方形括号。好了,那这时候我们一回车就会发现这有个缩进,所以说那我们需要把函数里要做的事情,把它放到这个缩进里面,我们可以选中要放进去的东西,按一下 tab 键, 他就会自动缩进。这里有一个小小的技巧,就是如果选中想缩进的这几行指令,摁 tab, 他就会每次缩进四个空格按或者一个 tab 的宽度。那如果说我们缩进多了,想返回来的话,按住 shift 按 tab, 他就能返回缩进。 好,那这时候呢?我们啊这个工具啊就创造好了,也就是说我们这时候就可以理解为我们创造了一个能够化长方形的工具。嗯,我们 通过 define 这个函数创造了一个这样的工具。那现在我们说老师,那你就点个运行,我们看一下吧,我们点一下运行, 哦,为什么不好使呢?也就是说我们函数并没有发挥用处,那为什么呢?因为啊,我们只是创造了工具,并没有拿过来用它啊,好比,比如说我们家里买了一个电视机啊,我没有去打开它,那我们就看不到东西, 对吧?嗯,好,那如何去使用我们的工具呢?我们叫做调用函数,那我们只要把函数名呢拿下来,我们写了一个长方形, 然后括号,这时候我们发现,哇,我们就可以使用这个工具了,那这个就是函数的定义与函数的 调用好,函数的调用我们可以理解为就是使用这个函数去做事情,那现在我们已经哎掌握了函数了, 我们就来分析一下今天我们要做的事情好不好?好,我们先把这个调用先删除掉, 那我们看一下今天丹麦国旗它的一个大小,首先丹麦国旗的比例比较特殊, 三十七比二十八,哇,我们是不是第一次看到这样特殊的比例,那如果说我们要把这个画布呢,设成我们的,按照比例啊,设成这个大小的话,我们可以使用 t 点 screen size, 画布的大小我们可以设为三百七十,然后逗号两百八十。好,那这个可能比较小,哎, 我们先看一下,哇,其实还可以了,是吧,那我们就用这个比例好了,也就是说我们把这个山前后呢都去成了十,扩大了十倍。 那这时候呢,我们啊说底色是红色,我们有一个特别重要的指令哈,就是在 screen size 的最后一项,我们可以添加一个颜色单词, 这时候我们的底色就会变成红色啊,说,老师,你这红色和这个红色好像不太一样哈,没事,我们画的是金色的,我们理解意思就好,如果同学们能找到更准确的颜色单词,可以自己替换一下。 好,那这个呢,就是我们的准备工作做好了,哎,我们做了一个和我们这个一样大小的一个旗面,并且呢颜色涂成了红色,我们把画笔抬起来,也就是说这个呢,我们可以理解 是准备工作,也就是每次开始的时候,我们哎都需要做这样的事情,先把画布大小设定好,放到第二步,哎,对吧,我们的画笔速度可以调快一点,然后同时呢我们可以把画笔抬起来,这样的话避免出现一条线。 那现在我们就来一起分析一下,我们这个画布到底是被怎么分割的。他说了白色部分呢,占宽度的七分之一,也就是白色这个部分,他是整个宽度的七分之一,而且上下呢是一样的, 那上面呢,我们是不是就可以理解为是三份,下面也是三份,那中间呢,就是一份喽。 哎,我们发现这个还很好算哈,三份,三份,一份,一共是七份,那我们把二十八分成七份,那 二十八除以七,我们会得到四四七,二十八,是不是?所以说,那我们这个呢,我们就可以算出来了,是不是多少,那也就是说白色部分,嗯,他占了 哦,我们中间的一份,那所以说就是四十,注意啊,因为我们成了十了,对不对?那四十去乘一等于四十,也就是白色部分的宽度,他就是四十, 那上面和下面我们的宽度其实我们都可以算出来,其实我们这里可以不用算啊,同学们也可以自己算一下哈,因为啊,每一份呢是四十,对吧?哎,因为二十八除以七等于四,我们是乘以十,那所以说这个呢,就是四十七乘三 啊,就是一百二十,对吧?因为我们左上角是一个正方形,所以说我们的上面和 左边都是一百二十。那现在呢,我们先去完成我们的,嗯,第一个小小的一个事情,就是我们先找坐标来,同学们自己跟我一起思考,如果画谱的大小被我们设定成两啊,三百七十,两百八十,左上角坐标是多少 未必能用得到,但是我们先算一下左上角坐标是多少,嗯,好,有的同学呢,可能已经算出来了,三百七十的一半左上角的坐标啊,好,三百七十的一半是 一百八十五,对不对?好,一百八十五,那因为是我们左边,所以是 x, 等于负的一百八十五,那外坐标呢?外坐标好,算两百八十的一半是一百四十,所以 y 坐标因为是上面,所以正的是一百四十,也就是我们的。嗯,这个位置好,也就是左上角的坐标就找到了, 同学们要非常熟练的能找到坐标,那现在呢,我们来看说我左上角,其实我并不要去哎,那个位置画图形,我们想画的是什么哦,画的是白色的长方形,那画白色长方形,我们长方形的这个工具已经做好了,我们只要拿出来用就好了, 但是呢,我们怎么去用?哎,那这时候我们发现我们的工具啊,好像有点问题。好,这工具只能画长为一百,宽为五十的,但很明显,我们这个长方形啊,他不是长为一百,宽为五十,这时候我们就要学习哦。第二个重要的知识点 就是函数,就是我们在函数中啊,可以去增加一些变量,给函数增加些变量。那首先呢,我们来看一下,我在这里面啊,加了个 a, 加了个 b, 那我把这两个数夹在我们的括号里, a 就代表我们画的横向的这个长度,你可以理解为是这个长方形号横向的长,那所以说我这个 forward 是不是就可以写 a 了,那这边呢,我们就可以写 b 了, 那这时候如果我们再去调用我们的函数的时候,我们就需要给出两个值,比如说给个一百,逗号二十, 那你会发现我就画了一个这样的一个长方形,它会根据我们给出的数值去 a 画出对应大小的长方形。那好,那 现在呢,我们就开始画出我们的白色部分,首先第一步我们需要去把颜色和 my color, 干脆就像外套了, 颜色调成白色以后,我们只需要来到这个位置啊,一句话,圆圈的这个位置,我们用绿色圈表示好了这个位置,那这个位置他的坐标是多少? 这个同学们,我觉得相对比较快的,能算出来,对不对?首先 x 和上面这个白圈是一样的,负的一百八十五, 因为都是在最左边,那 y 呢?我觉得 y 也很容易算,因为我们的白色它是四十,也就是白色的宽度是四十,正好在中间,那上面就是二十了,所以 y 就是二十,也就是说 我们找到了绿圈,也就是我们画出诶白色的这个长方形它的位置来,我们给出我们的位置, t 点儿 go to x 等于负的一百八十五,而 y 呢,等于二十。我们看一下我们的小乌龟,嗯哦,果然在这里了哈,非常小的点到这个位置以后,我们就调用长方形, 看一下长是多少长,就是从左到右,也就是三百七十,宽呢是四十,我们刚才已经说过了,点击运行, 哇,这就画好了,非常快,是不是啊?还是函数好用。那好,那现在我们的任务就是画出竖着这一带,那竖着这一带我觉得 也不难,我们只要来到这个位置就好了,这个我们叫 be 的位置,那 be 的位置,它的 x, y 是多少呢?首先我觉得 y 很好找,因为 y 和我们的啊,左上角是一样的一百四十。 那 x 呢?因为左上角呢是负的一百八十五,而我们这个红色的这个正方形哈,它的宽度我们是知道的,是四十乘三到一百二十, 也就是我们往右边增加了一百二十,一百八十五加一百二十是多少?嗯,是六十五,也就是 x 档六十五。六十五是怎么来的,我们要知道哈,当然我们有多种算法,就是我们从一百八十五负的往右走了一百二十,也就是加了一百二十,那这时候我们就会得到 啊,六十五负的,哈哈,这是负的六十五哈,千万不要写错了哈,负的六十五, 那好,那到这个位置以后,我们再画长方形,首先呢,我们来到 t 的 go to 的 x 等于负的六十五,而 y 呢,等于一百四十。到这个位置以后,我们调用长方形,那这时候注意我们先画的还是横向的长度, 也就是四十,再画的竖着也就是二百八十,这时候我们需要把小的写在前面,也就是四十,然后二百八十来点击运行。 哇,这时候我们就完成了标准的丹麦国旗的绘制,在绘制好以后呢,我们可以使用 t hide turtle, 我们把乌龟藏起来来点击运行,那这时候我们是不是我们的右边的国旗除了颜色上有一点差别之外,就完全一样了。 好,那这个呢,就是我们如何去绘制一个标准的丹麦国企,那这里面我们最重要的就是认识了函数,是不是非常容易懂啊?就是我创造了一个工具,然后我们去使用工具做事情。 那这里有同学说啊,老师我可不可以不用函数啊?那肯定是没有问题的,你把调用函数这个哎,把上面复制过来就可以,但是为什么我们要使用函数呢? 使用函数这里面有一个非常重要的作用,就是我们这一组指令可以备用很多次。嗯,可以重复调用它,这样的话我们可以更 更少的指令完成这个任务。另外还有就是这个代码更容易被看懂。嗯,就是我这里画长方形,这里画长方形,是不是?而且还很容易被修改,哎,如果出错了,函数出错了,我只要改函数,下面都会发生变化, 同学们务必要认真理解函数。并且呢跟老师一起来绘制,再见。
你是这样画国旗的吗?我教你画,画一个圆,画出旗杆,画一个 s 画 s 画 s, 画一个二连接两竖连接,画一个八,连接两竖连接,画出五个星星 上色完成。你学会了吗?你学会了吗?
彩砂简笔画。 妈妈妈妈,谢谢你爱我亲我照顾我。 爸爸爸爸,谢谢你疼我宠我保护我。老师老师,谢谢你每天辛苦要找我朋友朋友,谢谢你快乐游戏陪伴我。 妈妈妈妈,谢谢你爱我亲我照顾我 爸爸爸爸,谢谢你疼我宠我保护我。老师老师,谢谢你每天辛苦要找我朋友朋友,谢谢你快乐游戏陪伴我。
今天我画了很多的国旗,这里有欧洲和亚洲的,他我画的分别就是,中国、俄罗斯、法国、英国、美国、乌克兰、越南、巴基斯坦、 土耳其、孟加拉国、老挝、加拿大、朝鲜、帕劳、芬兰、瑞典、丹麦、挪威、科威特、巴勒斯坦、 新加坡、文莱东帝问、菲律宾、印度、尼泊尔、斯里兰、卡、马尔代夫、缅甸、泰国、马来西亚、阿富汗、哈萨克斯坦、乌兹别克斯坦、土库曼斯坦、吉尔吉斯斯坦、塔吉克斯坦、伊朗、格鲁吉亚、阿塞拜疆、 亚美尼亚、伊拉克、沙特阿拉伯、巴林、卡塔尔、韩国、蒙古、日 日本、印度尼西亚、阿拉伯联合酋长国、阿曼、野蛮,叙利亚、黎巴嫩、约旦、塞普罗斯、以色列、艾莎尼亚、拉脱维亚、立陶皖、白俄罗斯、意大利、摩尔多瓦、德国。