我们将介绍如何通过Python编程的方式实现李字的绘制。
一、引言
背景:李字是一种很有意思的艺术字体,而且它也能够很好地展示出计算机绘图的能力,因此很有必要学习如何用Python实现它的绘制。
设计思路:整个图形可分为三部分:左半边、右半边和中间连接线。左半边和右半边均以一个矩形为基础,每个矩形内部通过一定的数学公式绘制一个圆弧,再通过绘制弧切,得到李字效果。而中间连接线则是通过一些图形变换实现。
二、绘制左半边
我们从绘制左半边开始。
from turtle import *
import math
# 左半边
def left():
pu()
goto(-50, 100)
pd()
seth(-90)
width(15)
circle(50, 180)
forward(100)
left(90)
circle(150, -90)
left(90)
forward(100)
# 绘制
left()
done()
运行代码,将得到如下图形:
三、绘制右半边
接下来,我们需要绘制右半边。
from turtle import *
import math
# 左半边
def left():
pu()
goto(-50, 100)
pd()
seth(-90)
width(15)
circle(50, 180)
forward(100)
left(90)
circle(150, -90)
left(90)
forward(100)
# 右半边
def right():
pu()
goto(50, 100)
pd()
seth(-90)
width(15)
circle(-50, 180)
forward(100)
right(90)
circle(-150, -90)
right(90)
forward(100)
# 绘制
left()
right()
done()
运行代码,将得到如下图形:
四、绘制中间连接线
现在我们需要绘制中间的连接线。这个需要借助于一些图形变换来完成。
from turtle import *
import math
# 左半边
def left():
pu()
goto(-50, 100)
pd()
seth(-90)
width(15)
circle(50, 180)
forward(100)
left(90)
circle(150, -90)
left(90)
forward(100)
# 右半边
def right():
pu()
goto(50, 100)
pd()
seth(-90)
width(15)
circle(-50, 180)
forward(100)
right(90)
circle(-150, -90)
right(90)
forward(100)
# 中间连接线
def middle():
pu()
goto(0, 50)
pd()
seth(0)
width(15)
fd(100)
# 平移
pu()
left(90)
fd(15)
right(90)
pd()
fd(70)
# 旋转
pu()
goto(0, 50)
pd()
right(30)
width(5)
fd(40)
left(120)
fd(40)
# 绘制
left()
right()
middle()
done()
运行代码,将得到如下图形:
五、完整代码
以下是完整的Python代码:
from turtle import *
import math
# 左半边
def left():
pu()
goto(-50, 100)
pd()
seth(-90)
width(15)
circle(50, 180)
forward(100)
left(90)
circle(150, -90)
left(90)
forward(100)
# 右半边
def right():
pu()
goto(50, 100)
pd()
seth(-90)
width(15)
circle(-50, 180)
forward(100)
right(90)
circle(-150, -90)
right(90)
forward(100)
# 中间连接线
def middle():
pu()
goto(0, 50)
pd()
seth(0)
width(15)
fd(100)
# 平移
pu()
left(90)
fd(15)
right(90)
pd()
fd(70)
# 旋转
pu()
goto(0, 50)
pd()
right(30)
width(5)
fd(40)
left(120)
fd(40)
# 绘制
left()
right()
middle()
done()
运行代码,将得到李字的效果。
本文链接:https://my.lmcjl.com/post/8439.html
展开阅读全文
4 评论