Completed Image:
Introduction:
在我练习Python的时候,我观察了罗马字体,发现如果将把它放在平面构成里,它看起来也非常漂亮。
Reference:
大致模仿了罗马文字圆形形式,比例非常好。
Design thinking:
图形函数制作
- 再创建函数并定义函数变量,以创建 “m” 为例
- 并创建镜像:
1 2 3 4 5 6 7 8 9 10
| def m_word(t,x_pos,y_pos,scale):
t.setheading(0) scale = 0.6 * scale for mirror in [1,-1]: t.pu() t.goto(x_pos+20,y_pos-10) t.pd() t.pencolor("#580000")
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| if mirror: t.lt(90) else: t.lt(90+180*mirror) t.fillcolor("#580000") t.begin_fill() t.circle(100*scale,270*mirror) t.circle(200 *scale,-90*mirror) t.circle(180 *scale,-90*mirror) t.circle(130 *scale,-70*mirror) t.seth(-90*mirror) t.fd(200*scale*mirror) t.end_fill()
t.up() t.fd(20*scale*mirror) if mirror: t.rt(90) else: t.rt(90 + 180 * mirror)
t.fd(95*scale) t.pd()
t.fillcolor("#580000") t.begin_fill() t.circle(40*scale*mirror) t.end_fill() t.up()
|
其他图类似 … 共完成5个函数引用文件
效果图如下:
制作Main程序:
1 2 3 4 5 6 7 8 9 10 11
| import turtle t = turtle
t.hideturtle() turtle.bgcolor("#FF6021") t.speed(0) import pattern_t import pattern_l import pattern_m import pattern_p import pattern_s
|
1 2 3 4
| def quilt(scale, col, row, width,height,border, t): width = width height = height t.setup(width, height)
|
1 2
| startx = -width * .5 +border starty = -height * .5 +border
|
- 重点!!通过for循环,创建横向与纵向的复制,并创建”row”与”col”的变量来控制图像的数量
- 并通过num = (i + j) %5 公式,让 0,1,2,3,4 依次横竖排列
1 2 3 4 5 6 7 8
| for i in range(0, row): curr_y = starty + i * width/5. for j in range(0, col): curr_x = startx + j * height/5. t.pu() t.setpos(curr_x, curr_y) t.pd() num = (i + j) % 5
|
1 2 3 4 5 6 7 8 9 10
| if (num == 0): pattern_t.t_word(t, curr_x, curr_y,scale) if (num == 1): pattern_p.p_word(t, curr_x, curr_y,scale) if (num == 2): pattern_l.l_word(t, curr_x, curr_y,scale) if (num == 3): pattern_s.s_word(t, curr_x, curr_y,scale) if (num == 4): pattern_m.m_word(t, curr_x, curr_y,scale)
|
另附杂七杂八临摹练习图: