猫史档案馆


【编程小技巧】在编程猫上画几何图形

用户:杰鸽杰鸽查看:30 回复:95 评论:30 创建时间:2017-05-05T20:41:57


我来教大家在编程猫上画几何图形!

需要用到:动作积木和画笔积木!

首先,绘画一个空白角色(或角色就是个小黑点)






解析:这是画正方形,因为正方形决定面积大小的长等于宽,所以通过移动100步这个积木可以任意变大或变小。如果画长方形的话,可以:重复执行两次——落笔,移动(X)步,旋转(90)度,移动(Y)步,旋转(90)度。

这个正方形利用动作积木还可以变得更nice。

解析:通过设置颜色,画笔粗细来实现图形的nice。旋转36度可以让画笔不在一个正方形里优哉游哉跑来跑去,而是跑到别的地方画新的正方形了。

解析:重复执行360次,每次1度,那就是360度(圆的角度),移动1步是为了控制大小。(警报:在编程猫的背景里,可吃不消移动10步哦!)

试一试会这么样?

解析:与正方形同理。旋转45度是为了让它不在一个圆里徘徊。

解析:这是画正五边形。主要解释一下为什么要旋转72度——正五边形有5条边,每条边长度皆相等。且正五边形的内角和是360°,五个相同度数的内角,就分别是360/5=72°!

同理,用这个理论,还可以画更多边的多边形。

解析:简直太炫酷了有没有!水晶球诶!当然这个重复执行100次,数值是无用的(每次旋转36度,总共360度,能画10个五边形,所以只要重复执行10次以上就可以了!)。

如果你掌握了这些,你甚至可以画出实心圆!

解析:奥义·画圆·实心圆!我们可以计算一下:总共360度,每次旋转3.6度——可以画出100个正五边形!由于这些正五边形挨得太近了,所以会出现如此画面。

画三角形

从一个点,沿着某个方向出发,经过n次旋转又回到原来的方向,总共旋转了多少度?360度,对不对?

解析:再努力想想,重复执行的次数和旋转的角度是不是成反比例?(积永远是360度),那修改一下数值,又会怎样?

边的数量产生了变化!因为正多边形,假设有n个边,每次旋转的角度都是相同的,所以每次旋转的角度等于 360/n 。



回复

上一页1 页 / 共 4下一页
ftxqgfudiftxqgfudi

嗯哪,知道啦

点赞0


评论


~断了个弦~~断了个弦~

我怎么感觉我又上了一遍我去年上的编程猫数学课几何初步那课……

点赞0


评论


技术喵技术喵

get√

点赞0


评论


杰鸽杰鸽

本人从未上过编程数学课。


点赞0


评论


苏某苏某



点赞0


评论


勇敢的胡萝卜君勇敢的胡萝卜君

厉害呀!要多多学习学习


点赞0


评论


无可否认无可否认

没报过名······

点赞0


评论


 Minecraft Minecraft



点赞0


评论


一路有你,青莲剑仙一路有你,青莲剑仙

6666

点赞0


评论


一路有你,青莲剑仙一路有你,青莲剑仙



点赞0


评论


一路有你,青莲剑仙一路有你,青莲剑仙



点赞0


评论


BLBBLB



点赞0


评论


RubyxiaofengRubyxiaofeng

其实真正旋转的不是内角,而是180°减去内角。完整的算式是

180°-(边数-2)180

点赞0


评论


RubyxiaofengRubyxiaofeng

错了错了是180°-(边数-2)180/边数


点赞0


评论


陈砦人陈砦人

emotion_编程猫_厉害了

点赞0


评论


洛克希洛克希

emotion_编程猫_点赞

点赞0


评论


天天酷跑2天天酷跑2

emotion_星能猫_好吃

点赞0


评论


Python新世界Python新世界

emotion_星能猫_爱你

点赞0


评论


开心每一天59开心每一天59

点赞0


评论


开心每一天59开心每一天59

这里还有方法

点赞0


评论


Python新世界Python新世界

emotion_编程猫_点赞

点赞0


评论


可爱的小雨QAQ可爱的小雨QAQ

emotion_编程猫_点赞emotion_星能猫_爱你

点赞0


评论


krOptionskrOptions

还真可以画出实心圆

点赞0


评论


krOptionskrOptions

5图是这样子的

点赞0


评论


勤奋的土岩龙i9A9勤奋的土岩龙i9A9

..

点赞0


评论


OpenJDK(笑OpenJDK(笑

上古版本???

点赞0


评论


OpenJDK(笑OpenJDK(笑

emm="你是喵吗"
print(emm)

点赞0


评论


定位失败定位失败

考古

点赞0


评论


轻描淡写轻描淡写

材商城

点赞1


评论


DSWSRDSWSR

from turtle import *
a=5
b=1
d=0
e=1
c=['red','green','blue','pink','orange','black','yellow']
speed(20)
pensize(e)
while True:
    pencolor(c[d])
    pensize(e)
    fd(a)
    rt(b)
    a+=0.5
    b+=0.5
    e+=0.1
    if d<=5:
        d+=1
    else :
        d=0
    if a>=300:
        done()
        break

点赞2


评论