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

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

时间:2023-06-10 19:23:20浏览次数:51  
标签:turtle sector python fd range 绘图 strip radius

task1_1

实验源码:

from turtle import *
def move(x, y):
    '''画笔移动到坐标(x,y)处'''
    penup()
    goto(x, y)
    pendown()
def draw(n, size = 100):
    '''绘制边长为size的正n变形'''
    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):
    """把画笔移动至坐标(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

实验源码:

"""以(0,0)为圆心,绘制9个同心圆"""
from turtle import *


def moveto(x, y):
    """把画笔移至坐标(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

实验源码:

"""以(0, 0)为圆心,绘制9个彩色同心圆,色彩随机生成"""
from turtle import *
from random import random


def moveto(x, y):
    """把画笔移至坐标(x,y)处"""
    penup()
    goto(x, y)
    pendown()


def gen_color():
    """生成一个以rgb三元组表示的颜色值并返回"""
    return tuple((random() for _ 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()

实验结果:

 实验3_1

实验源码:

from turtle import *
def square(size = 50, rgb = 'pink'):
    """绘制正方形
    :para: size:int 指定边长 (如未指定参数,使用默认值)
    :para: c: str 指定画笔颜色值 (如未指定参数,使用默认值)
    """
    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,rgb = 'orange')
        left(360/n)
    hideturtle()
    done()
main()

实验结果:

 task3_2

实验源码:

from turtle import *
setup(800, 600)
pencolor('pink')
n=10
for i in range(n):
# 绘制一片花瓣
    for j in range(2):
        circle(80, 90)
        left(90)
    right(360/n)
hideturtle()
done()

实验结果:

 task4

实验结果:

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 *
square = Turtle()
square.color('black')
square.penup()
square.goto(-100,-100)

square.pendown()
square.begin_fill()
for _ in range(4):
    square.fd(200)
    square.left(90)
square.end_fill()


s2 = Turtle()
s2.color('red')
s2.penup()
s2.goto(0,-100)

s2.pendown()
s2.left(45)
s2.begin_fill()
for _ in range(4):
    s2.fd(100*(2**0.5))
    s2.left(90)
s2.end_fill()
done()

实验结果:

 task5_2

实验源码:

from turtle import *
sector = Turtle()
# 初始化绘图参数
sector.penup()
sector.goto(0, 0)
sector.color('blue')
sector.pensize(2)
sector.speed(0)
# 设置扇形数值
radius = 40
delta_d = 20
sector.pendown()
for _ in range(5):
    sector.fd(radius)
    sector.left(90)
    sector.circle(radius, extent=90)
    sector.seth(270)
    sector.fd(radius)
    sector.seth(0)

    radius += delta_d

done()

实验结果:

 task6

实验源码:

from turtle import *
from random import random
strip = Turtle()
setup(800, 600)
strip.speed(0)
# 获取颜色


def colors():
    return tuple(random() for _ in range(3))


strip.pendown()
for i in range(10):
    strip.color(colors())
    strip.begin_fill()
    for _ in range(2):
        strip.fd(20)
        strip.left(90)
        strip.fd(60)
        strip.left(90)
    strip.fd(20)
    strip.end_fill()

strip.penup()
strip.goto(0, 0)
strip.pendown()

for i in range(10):
    strip.color(colors())
    strip.begin_fill()
    strip.seth(180)
    for _ in range(2):
        strip.fd(20)
        strip.right(90)
        strip.fd(60)
        strip.right(90)
    strip.fd(20)
    strip.end_fill()
strip.hideturtle()
done()

实验结果:

 总结:学习了turtle模块的用法,还需继续练习。

标签:turtle,sector,python,fd,range,绘图,strip,radius
From: https://www.cnblogs.com/scy2003/p/17471786.html

相关文章

  • Python潮流周刊#6:Python 3.12 有我贡献的代码!
    你好,我是猫哥。这里记录每周值得分享的Python及通用技术内容,部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)首发于我的博客,https://pythoncat.top/posts/2023-06-10-weekly6......
  • DES加密算法及Python实现
    一、DES加密算法原理DES加密算法是一种对称密钥的块加密算法,1976年成为美国联邦标准。其加密流程如下:密钥的生成:将64位密钥按照置换选择1表进行置换,得到56位的密钥,并分成左右两部分各28位。然后使用16个不同的演算法对密钥进行处理,生成16个48位子密钥。明文分组:将明文分成64位的块,......
  • 使用python插入一亿数据到mysql
    应用场景,数据库数据达到千万以后,做数据分析执行脚本开始变慢,所以用到clickhouse,先插入一亿数据测试先安装pip支持mysql.connector,我安装的python3.11pip3installmysql-connector-python再使用pip3list查看是否安装成功以下是mysql创建表语句CREATETABLE`test_table`(......
  • Python+sklearn使用DBSCAN聚类算法案例一则
    DBSCAN聚类算法概述:DBSCAN属于密度聚类算法,把类定义为密度相连对象的最大集合,通过在样本空间中不断搜索最大集合完成聚类。DBSCAN能够在带有噪点的样本空间中发现任意形状的聚类并排除噪点。DBSCAN算法不需要预先指定聚类数量,但对用户设定的参数非常敏感。当空间聚类的密度不均匀、......
  • 1000道Python题库系列分享三(30道)
    上一期题目链接:1000道Python题库系列分享二(48道)上一题题目参考答案:2.1 312.2 'F'2.3 Python采用的是基于值得内存管理方式,在Python中可以为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一个内存地址;Python具有自动内存管理功能,会自动跟踪内存中所有的值,对于没......
  • 1000道Python题库系列分享四(40道)
    热烈庆祝2018年2月董付国老师《Python程序设计(第2版)》出版18个月第5次印刷,《Python可以这样学》出版12个月第5次印刷,系列教材《Python程序设计基础》、《Python程序设计开发宝典》、《中学生可以这样学Python》等出版两年半以来已累计印刷25次。上一期题目链接:1000道Python题库系列......
  • Python+sklearn使用支持向量机算法实现数字图片分类
    关于支持向量机的理论知识,大家可以查阅机器学习之类的书籍或网上资源,本文主要介绍如何使用Python扩展库sklearn中的支持向量机实现数字图片分类。1、首先编写代码生成一定数量的含有数字的图片上面代码运行会生成80000张含有数字0到9的图片,并加入随机干扰,交换相邻两个像素的颜色。......
  • 数学老师从没这么教过,乘法竖式中进位可以是多位(附Python实现与测试源码)...
    大概十五年前,曾经写过一个C语言版本的类似代码。核心思想是:在乘法竖式计算过程中,每次的进位实际上是可以超过一位的,虽然老师从来没有这么教过。这样的操作在Python中是没有必要的,因为Python中的数字没有大小限制。但在C语言或其他静态类型语言中,由于整型变量能够表示的范围有限,所以......
  • Python中相同的值在内存中到底会保存几份
    Python采用基于值的内存管理模式,相同的值在内存中只有一份。这是很多Python教程上都会提到的一句话,但实际情况要复杂的多。什么才是值?什么样的值才会在内存中只保存一份?这是个非常复杂的问题。0、首先明确一点,整数、实数、字符串是真正意义上的值,而上面那句话中的“值”主要指整数......
  • 使用Python处理声音文件(二):音量降低1/2
    说明:1、需要首先安装Python扩展库scipy。2、本文代码只适用于未压缩的WAV声音文件。参考代码:......