数学的美你知道吗?
今天给大家介绍用数学函数画一些奇异的图案,想用的有正弦函数sine,平方根和求余运算%。
先说一个运算“平方根”——比如求100的平方根就是在求“谁乘以谁=100?”当然是10乘以10了!所以100的平方根是10。25的平方根呢?当然是5了!在Python里当然有求平方根的函数了,它就是math.sqrt()。括号里写你想求的数。
再说“正弦函数”——也就是数学上的sine函数,这个函数的图像是下面这个样子的:像一个水波浪一样是吧?Python里面也有这个函数:math.sin()
再说一个运算:求余数。小学生都应该学过了:9除以2的余数是多少?是1;9除以3的余数是多少?0。相信大家都会。在Python里求余数也叫求模,运算符是%,比如:
10%5=0
10%6=4
好了,我们先写一个最简单的代码如下:
import turtle
import math
bob = turtle.Turtle()
bob.color("red","yellow")
bob.speed(0)
for i in range(200):
bob.forward(math.sqrt(i)*10)
bob.left(170)
这里面我们引入了一个math模块,就像我们一直在用的turtle模块一样,math模块也是python当中的另一个有用的模块,使用方法也一样:先要引入import math,然后才能在后面使用。而我们的乌龟前进的步数是用的平方根bob.forward(math.sqrt(i)*10)。会得到什么图案呢?我们看看!
稍微改动上面的程序代码,我们将bob.left(170)改为bob.left(i%180)。这里面用到了上面说的“求余运算”——想一想,乌龟每次转移的角度不一样了:逐渐增大是不?它画的图变成下面这样了:
让我们把for循环的次数变大点,比如2000:再把前进的10倍去掉只是forward(math.sqrt(i)),for循环部分的代码变成下面这样:
for i in range(2000):
bob.forward(math.sqrt(i))
bob.left(i%180)
图像居然变成很奇怪的样子了:
下面我们再用sine正弦函数试试会出现什么呢?将for循环改成下面这样:
for i in range(1000):
bob.forward(10)
bob.left(math.sin(i/10)*25)
bob.left(20)
数学函数是不是很神奇,稍微改动一下就出现了很多奇怪的图案。你还可以尝试前进(forward)或左转(left)不同的数值和函数试验下,还会有更多很酷的图案呢。比如把上一步的left左转数值变成5,8,30试验下,就变成了下面的样子:
太神奇了!多做试验感受下哦!
学编程、学创造、释放你的想象力
领取专属 10元无门槛券
私享最新 技术干货