100个python算法超详细讲解:画圆和圆弧

1.问题描述
使用turtle中提供的绘图函数绘制一个笑脸。
2.问题分析
一个笑脸图形,可以分解为一个大圆(脸部轮廓)、两个小圆
(眼睛)、三条直线(鼻子)和一条圆弧(嘴巴)。因此现在要解决
的问题是如何在屏幕上画出圆、圆弧等曲线。
3.算法设计
要绘制圆形、圆弧等图形,可以使用turtle模块提供的函数方法,
在前面我们详细地介绍了turtle的函数方法,这里使用turtle的如下方法
来绘制所需的图形。
·turtle.width(2):设置宽度。
·turtle.color("black"):设置画笔颜色。
·turtle.circle(120):画圆。
·turtle.penup():抬笔。
·turtle.goto(-60,130):移动到坐标点。
·turtle.pendown():画笔落下。
·turtle.setheading(90):设置朝向,向北90°。
·turtle.forward(len):前进len指定的距离。
·turtle.left(3):左转3个单位。
·turtle.done():关闭turtle。
4.完整的程序
根据上面的分析,编写程序如下:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @author : liuhefei
# @desc: 画圆和圆弧
import turtle
if __name__ == "__main__":
# 画脸
turtle.width(2) # 设置宽度
turtle.color("black") # 设置画笔颜色
turtle.circle(120) # 画圆
# 画眼睛
turtle.penup() # 抬笔
turtle.goto(-60, 130) # 移动到坐标点
turtle.pendown() # 下笔
turtle.color("black")
turtle.circle(20)
turtle.penup() # 抬笔
turtle.goto(60, 130) # 移动到坐标点
turtle.pendown() # 下笔
turtle.color("black")
turtle.circle(20)
# 画鼻子
turtle.penup() # 抬笔
turtle.goto(0, 120) # 移动到坐标点
turtle.pendown() # 下笔
turtle.goto(-50, 70)
turtle.goto(50, 70)
turtle.goto(0, 120)
# 画嘴巴
turtle.penup() # 抬笔
turtle.goto(-60, 45) # 移动到坐标点
turtle.pendown() # 下笔
#turtle.circle(90, extent= 90)
turtle.setheading(90) # 设置朝向
len = 1 # 设置初始走的速度为1
for j in range(60):
if j > 30: # 当j<30,也就是画前一半的弧线
len += 0.2 # 让速度越走越快
else: # 画后一半弧线
len -= 0.2 # 让速度越走越慢
turtle.forward(len) # 前进
turtle.left(3) # 左转
turtle.goto(-60, 45)
turtle.done() # 关闭

在PyCharm下运行程序,结果如图11.3所示

100个python算法超详细讲解:画圆和圆弧_第1张图片

 

你可能感兴趣的:(python,python算法,Clash免费订阅,几何学,python)