首页 > 编程语言 >实验6 turtle绘图与python库应用编程体验

实验6 turtle绘图与python库应用编程体验

时间:2023-06-05 22:24:05浏览次数:41  
标签:turtle python range 绘图 import main def left

实验任务一

task1_1

from turtle import *

def move(x,y):
    penup()
    goto(x,y)
    pendown()

def draw(n,size= 100):
    for i in range(n):
        fd(size)
        left(360/n)

def main():
    pensize(2)
    pencolor('red')

    move(-200,0)
    draw(3)

    move(0,0)
    draw(4)

    move(200,0)
    draw(5)

    hideturtle()
    done()

main()

运行结果截图

task1_2

from turtle import *
def moveto(x, y):
    penup()
    goto(x, y)
    pendown()
def main():
    pensize(2)
    pencolor('blue')
    moveto(-150, 0)
    circle(50)
    moveto(0, 0)
    circle(50, steps = 4)
    moveto(150, 0)
    circle(50, steps = 5)
    moveto(300, 0)
    circle(50, steps = 6)
    hideturtle()
    done()
main()

运行结果截图

 实验任务二

task2_1

from turtle import *
def moveto(x, y):
    penup()
    goto(x, y)
    pendown()
def main():
    setup(800, 600)
    radius = 20 # 圆初始半径
    offset = 20 # 同心圆每次位移量
    for i in range(9):
        moveto(0, -radius)
        circle(radius)
        radius += offset
    hideturtle()
    done()
main()

运行结果截图

task2_2

from turtle import *
from random import random
def moveto(x, y):
    penup()
    goto(x, y)
    pendown()
def gen_color():
    return tuple((random() for i in range(3)))
def main():
    setup(800, 600)
    radius = 180 # 圆初始半径
    offset = 20 # 同心圆每次位移量
    for i in range(8):
        moveto(0, -radius)
        color(gen_color())
        begin_fill()
        circle(radius)
        end_fill()

        radius -= offset

    hideturtle()
    done()

main()

 运行结果截图

若半径从小到大画不能完成题目要求,最后只得到一个颜色的大圆

 实验任务三

task3_1

from turtle import *
def square(size = 50, rgb = 'orange'):
    pencolor(rgb)
    for i in range(4):
        fd(size)
        left(90)
def main():
    setup(800, 600)
    speed(0)
    n = 10
    for i in range(n):
        square(80)
        left(360/n)
    hideturtle()
    done()
main()

运行结果截图

task3_2

from turtle import *
speed(0)
setup(800, 600)
pencolor('pink')
n = 10
for i in range(10):
    for j in range(2):
        circle(80, 90)
        left(90)
    right(360/n)
hideturtle()
done()

运行结果截图

实验任务四

from turtle import *
setup(800, 600)
bgcolor('black')
pencolor('white')
speed(0)
angle = 0
size = 2
n = 5 # 螺旋n边形
count = 50 # 循环次数
for i in range(count):
    fd(size)
    angle += 360/n
    seth(angle)
    size += 5
hideturtle()
done()

运行结果截图

 实验任务五

task5_1

from turtle import *
def move_to(a,b):
    penup()
    goto(a,b)
    pendown()
def main():
    move_to(-100,-100)
    color('black')
    begin_fill()
    for i in range(4):
        fd(200)
        left(90)
    end_fill()
    move_to(0,-100)
    color('red')
    begin_fill()
    left(45)
    fd(100*2**(1/2))
    for i in range(3):
        left(90)
        fd(100*2**(1/2))
    end_fill()
    hideturtle()
    done()
main()

运行结果截图

 task5_2

from turtle import *
pensize(2)
pencolor('blue')
r = 40
d = 20
for i in range(5):
    fd(r)
    left(90)
    circle(r,90)
    left(90)
    fd(r)
    left(90)
    r += d
hideturtle()
done()

运行结果截图

 实验任务六

绘制条状彩色颜色图谱

from turtle import *
from random import random
speed(0)
def move_to(a,b):
    penup()
    goto(a,b)
    pendown()

def gen_color():
    return tuple((random() for i in range(3)))

def main():
    setup(800,600)
    move_to(-100,0)
    for i in range(20):
        color(gen_color())
        begin_fill()
        for i in range(2):
            fd(10)
            left(90)
            fd(32)
            left(90)
        end_fill()
        fd(10)
    done()
    hideturtle()
main()

运行结果截图

 绘制一个简单的吃豆人图案

from turtle import *
speed(0)
def move_to(a,b):
    penup()
    goto(a,b)
    pendown()
def p_c(a,b,c,r):
    move_to(a,b)
    color(c)
    begin_fill()
    circle(r)
    end_fill()
bgcolor('black')
color('yellow')
begin_fill()
move_to(100,100)
left(135)
circle(100,270)
left(90)
fd(100)
right(90)
fd(100)
end_fill()
p_c(45,75,'black',8)
p_c(37,84,'white',2)
hideturtle()
done()

 运行结果截图

 

标签:turtle,python,range,绘图,import,main,def,left
From: https://www.cnblogs.com/wfg-www/p/17458881.html

相关文章

  • 【Python网络爬虫课程设计】B站up主——老番茄视频数据爬取+数据可视化分析
    一、选题背景1.背景随着大数据时代的来临,网络爬虫在互联网中的地位将越来越重要。互联网中的数据是海量的,如何自动高效地获取互联网中我们感兴趣的信息并为我们所用是一个重要的问题,而爬虫技术就是为了解决这些问题而生的。对于身为数据科学与大数据技术专业的学生来说,网络......
  • python学习框架
    Python简介与安装Python的历史与特点Python的安装与配置Python基础语法变量与数据类型运算符与表达式控制结构(条件判断与循环)函数与模块错误处理与异常Python数据结构列表(List)元组(Tuple)集合(Set)字典(Dictionary)Python面向对象编程类与对象继承与多态封......
  • 实验6 turtle绘图与python库应用编程体验
    实验任务1:使用turtle绘制基础图形task1_1.py实验源码:1fromturtleimport*23defmove(x,y):4penup()5goto(x,y)6pendown()78defdraw(n,size=100):9foriinrange(n):10fd(size)11left(360/n)12......
  • python 常用的内置函数
    1、sorted() 排序l=sorted([1,2,3,6,34,20,18])print(l)2、help()会经常使用python自带函数或模块,一些不常用的函数或是模块的用途不是很清楚,这时候就需要用到help函数来查看帮助。3、dir()dir()函数的参数是你传入的对象,它会返回对象的属性和方法print(dir(l......
  • Python 子类继承了多个父类 , MRO查找调用方法
      在Python中,如果一个子类继承了多个父类,而这些父类中都有同名的方法或属性,那么子类在调用这个方法或属性时,会按照MRO(MethodResolutionOrder,方法解析顺序)的规则进行查找和调用。在Python中,MRO的顺序是由C3算法计算出来的。C3算法是一种基于拓扑排序和合并的算法,用......
  • Python生成器深度解析:构建强大的数据处理管道
    前言生成器是Python的一种核心特性,允许我们在请求新元素时再生成这些元素,而不是在开始时就生成所有元素。它在处理大规模数据集、实现节省内存的算法和构建复杂的迭代器模式等多种情况下都有着广泛的应用。在本篇文章中,我们将从理论和实践两方面来探索Python生成器的深度用法。生......
  • Python生成器深度解析:构建强大的数据处理管道
    前言生成器是Python的一种核心特性,允许我们在请求新元素时再生成这些元素,而不是在开始时就生成所有元素。它在处理大规模数据集、实现节省内存的算法和构建复杂的迭代器模式等多种情况下都有着广泛的应用。在本篇文章中,我们将从理论和实践两方面来探索Python生成器的深度用法。......
  • python机器学习——点评评论分析
    (一)选题背景:随着广大用户“即需要、即外卖、即使用”的方便快捷的“外卖生活方式”的形成和普及,如今外卖行业不仅可以满足用户餐饮商品的在线即时购物需求,还可以满足饮食、水果、酒水饮料、家居日用、母婴用品、数码家电、服饰鞋包、美妆护肤、医药等各种品类商品。对于服务行业来......
  • python时间和日期处理
    1.时间处理time相关操作:获取当前时间时间转字符串字符串转时间计算时间差importtimenow=time.time()#时间戳从1970年1月1日0点0分0秒到此刻的秒数print(f"{now=}")now_st=time.localtime(now)#标准时间年月日,时分秒print(f"{now_st}")now_str=time.strftim......
  • Python实验课5
    实验任务六实验源码:1withopen('data6.csv','r',encoding='gbk')asf:2data=f.readlines()3data1=[str(eval(data[i]))foriinrange(1,len(data))]4data2=[str(int(eval(data[i])+0.5))foriinrange(1,len(data))]5info=......