韩梅梅学python之二:黄金分割和五角星

871 阅读5分钟

学完python3中f-string 格式化固定宽度的数字,李雷如约上门安装安装python,折腾了很大一通李雷和韩梅梅都感觉很累。 于是李雷提议到公园玩耍,他提前做足了功课,学习了很多拍照到知识,终于用上了,尤其是构图比例,一律黄金分割。 ...

回到家,看到韩梅梅看照片时放大了的瞳孔,合不拢的嘴角,李雷由衷的感受到黄金分割真是个好东西。灵机一动,于是对韩梅梅说,梅梅咱们用python画个五角星吧。 “好呀”,梅梅愉快的答应了。

“python中有个神奇的绘图利器,turtle。你可以想像成有一只听话的小乌龟,按照你的命令在画布上爬来爬去的画画。 首先我们告诉它,这块画布的大小是500*500像素, 然后告诉它,向前走200像素,右转144度,重复这个动作5次”

小乌龟爬呀爬,最终的结果终于出现了:

“好棒啊,雷哥”,韩梅梅欢呼到。 “五角星是一个很美的图形,原因在于他里面的任意两条线段都符合黄金分割比例。”

我们还可以給它点颜色。

from turtle import *
setup (width=500,height=500)
speed(0)
hideturtle()
color('red', '#ff6666')
begin_fill()
while True:
    forward(200)
    right(144)
    if abs(pos()) < 1:
        break
end_fill()

done()

"为啥中间是空的啊",韩梅梅好奇的问。

“看起来小乌龟只能从外往里填颜色,咱们可以让他它只画五角星外边框”。

from turtle import *
import math
edge_count = 5
angle = 144
angle_out = -72
GOLDEN_SECTION = (math.sqrt(5)-1)/2
def draw_pentagram_edge(size):
    for n in range(edge_count*2):
        forward(size*(1-GOLDEN_SECTION))
        right(angle_out if n % 2 == 0 else angle)

if __name__ == "__main__":
    setup (width=WINDOW_SIZE,height=WINDOW_SIZE)
    speed(0)
    hideturtle()
    color('red', '#ff6666')
    begin_fill()
    draw_pentagram_edge(200)
    end_fill()
    done()

“雷哥,真漂亮”,韩梅梅看到如此完美的图形,由衷的感叹,“只不过现在没有居中绘制”。 李雷:“要居中绘制也不难,需要用到一些数学知识”

韩梅梅:“雷哥,我头晕”

李雷:“简单的说就是算好位移,像这样。”

“利用黄金分割的特点,我们可以利用程序画出很多有趣的图形”,于是李雷埋头写了一些代码。

随着最后的指令输入完成,一个个五颜六色的五角星跃然屏幕上。

最后李雷还是把这些代码放到了github

“这比字符串有趣多了”,韩梅梅总结了一天的学习。 “好啊,以后我们可以用python画很多有趣的东西”,为了保持韩梅梅的兴趣李雷也是拼了。


全部故事:

韩梅梅学python之序章:一行命令,更新flutter工程下所有图标

李雷经过一个月的奋战,终于完成了一个flutter应用的开发。
打算上线了才发现,图标还是flutter自带的图标呢,赶紧向设计师韩梅梅求救。
设计师韩梅梅拿出准备已久的Logo丢给李雷,李雷傻眼了。
李雷:“怎么只有一个?”
韩梅梅:“难道安卓和iOS要用不同的图标?”
李雷:“不是啊。同样的图标不同的尺寸。
      安卓图标五六个 ,iOS图标十几个吧。
      我给你列个列表吧,尺寸都告诉你。你帮忙resize一下吧。”
韩梅梅:”宝宝心里苦...“
李雷:“嗯,我想想办法吧...”

韩梅梅学python之一:python3中f-string 格式化固定宽度的数字

书接上回
看到工程师李雷能用一行命令,更新flutter工程下所有图标,
韩梅梅深刻的体会到,这(zhe)门(ge)语(nan)言(ren)如此优秀,一定不能错过。
于是找到李雷:
韩梅梅:“李雷,上次见到你用python更新图标,感觉好棒啊”
李雷:“Python确实是很好用的”
韩梅梅:“我能学会吗”
李雷:“有我在,怎么可能学不会呢?我们先从最简单的Hello world开始吧”
......

韩梅梅学python之二:黄金分割和五角星

学完python3中f-string 格式化固定宽度的数字,
李雷如约上门安装安装python,折腾了很大一通李雷和韩梅梅都感觉很累。
于是李雷提议到公园玩耍,他提前做足了功课,
学习了很多拍照到知识,终于用上了,尤其是构图比例,一律黄金分割。 ...

韩梅梅学Python之三:斐波那契

经过上次的授课经历,李雷发觉,韩梅梅对图形绘制这块很感兴趣。
于是绞尽脑汁,谷歌百度,寻找各种素材。经过反复实验终于完成了备课工作。
于是乎掰着手指头,从周一盼到了周六。
“梅梅,我们先看一个神奇的公式,以及如何用python实现它”

韩梅梅学Python之四:一行命令,图片全灰

2020年4月4日,一大早,老板急冲冲的打电话给韩梅梅。

李老板:“全国网站都灰了,为啥我们自己的网站还这么鲜艳。”

韩梅梅:“好多图改不过来。”

李老板:“本来你应该提前准备的。结果搞成现在这么被动。
我们是创业公司,每个员工都应该是创业者。
作为一个合格的创业者,要有远见,有自驱,
不要什么都不考虑,不要什么都等安排。

如果你觉得自己不想当创业者,那就去找份大厂的工作。
如果你是个创业者,就拿出创业者的劲头加个班搞定吧。”

还没等韩梅梅回答,电话就被挂断了。