利用Python制造出七彩花朵

文章目录

  • 前言
    • 小海龟
    • 花朵类
    • 移动函数
    • 画花朵


前言

来啦来啦来啦,小伙伴们快快来领取七彩花瓣雨吧!!

小海龟

老生常谈啦,在用python画樱花树前,我们先来了解一下turtle吧!

小海龟(Turtle)是Python中画图的一个重要的包(内置包),里面包含丰富的画图工具以及画图的各种功能,当你学会了用Turtle画图后,你可以画任何你想画的图案哦。

1.1 Turtle画板

Turtle的画板大小可以用turtle.setup()函数来设置

turtle.setup(width,height)

设置画板的大小,包含宽和高,width为宽,height为高。

1.2 Turtle画笔

Turtle的画笔有几个常用的函数:

①turtle.penup():抬起画笔,此时移动画笔不会在画布上留下痕迹哦
②turtle.pendown():放下画笔,与turtle.penup相对应,放下画笔后就可以继续画画了(放下画笔后画画会在画布上留下痕迹)
③turtle.pensize():控制画笔的大小(可以根据需求自行定义画笔的大小哦)
④turtle.pencolor():控制画笔的颜色(可以自己在网上查阅所有python可以使用的颜色,python里面可以用的颜色有很多的哦)
⑤turtle.hideturtle():隐藏画笔(隐藏画笔以后画图时画笔就看不到了)

1.3 Turtle画图

在画图的过程中,我们经常要使用一些简单的移动函数:

①turtle.forward(x):将画笔向前移动x个像素(x可以理解为距离)
②turtle.backward(x):将画笔向后退x个像素(x可以理解为距离)
③turtle.left(n):将画笔向左旋转n度
④turtle.right(n):将画笔向右旋转n度
⑤turtle.speed():设置画笔画图的速度(1~10递增,0最快)

1.4 Turtle填色

在画好图后,我们经常需要对其进行填色,这里可以用turtle.fillcolor()函数,括号里写入你想填充的颜色即可。
在使用turtle.fillcolor()函数要注意其基本格式:

turtle.beginfill() #开始填充
turtle.fillcolor() #输入填充的颜色
turtle.endfill() #结束填充

1.5 Turtle写字

在完成整个画图后,我们可以使用turtle.write()函数进行写字

turtle.write(" ",move,align,font)

① 第一个位置双引号内填入要写的字
② move(可选):在默认情况下,move为false。如果move为true,则笔将移动到右下角
③ align(可选):可取值是left即左、center即中、right即右之一,是字符串格式
④ font(可选):字体三元组(fontname、fontsize、fonttype),fontname即字体名称(字符串格式,如“宋体”),fontsize即字体大小),fonttype即字体类型如:normal(普通)、bold(粗体)、italic(斜体)

花朵类

class Flower():    #每个花朵(花朵类)def __init__(self):self.r = ra.randint(8,12)        #花朵的半径self.x = ra.randint(-1000,1000)   #花朵的横坐标self.y = ra.randint(-500,500)     #花朵的纵坐标self.f = ra.uniform(-3.14,3.14)   #花朵左右移动呈正弦函数self.speed = ra.randint(5,10)     #花朵移动速度self.color = ra.choice(colors)    #花朵的颜色self.outline = 1                  #花朵的外框大小(可不要)

这段代码是定义了一个名为Flower的类,该类描述了花朵对象的属性和行为。在该类的初始化函数__init__中,定义了花朵的半径、横纵坐标、左右移动方向、移动速度、颜色和外框大小等属性,并通过产生随机数来赋值。这些属性可以用于绘制花朵图像或控制花朵的运动轨迹。Flower类的定义使得在之后的代码中可以更方便地创建和操作花朵对象。

移动函数

    def move(self):                    #花朵移动函数if self.y >= -500:            #当花朵还在画布中时self.y -= self.speed     #设置上下移动速度self.x += self.speed * math.sin(self.f)    #设置左右移动速度self.f += 0.1            #可以理解成标志,改变左右移动的方向else:                        #当花朵漂出了画布时,重新生成一个花朵self.r = ra.randint(8,12)self.x = ra.randint(-1000,1000)self.y = 500self.f = ra.uniform(-3.14,3.14)self.speed = ra.randint(5,10)self.color = ra.choice(colors)self.outline = 1

这段代码定义了一个move函数,描述花朵对象的运动方式。如果花朵仍在画布中(y >= -500),则花朵会以设定的速度(speed)向上移动,并以设定的左右移动方向(f)左右摆动。左右移动的方向变化由f值的增加控制(f += 0.1)。如果花朵漂出了画布,则通过产生随机数重新生成一个花朵对象,以保证画布上始终有花朵。这样,每个花朵对象都具有独立的属性和行为,并且可以在画布上自由运动。

画花朵

    def draw(self):       #画花朵函数,就是用turtle画花朵t.penup()t.goto(self.x,self.y)t.setheading(self.x)t.pendown()t.left(36)t.color(self.color)t.begin_fill()t.fillcolor(self.color)for i in range(5):t.left(-72)t.circle(self.r,extent=144)t.end_fill()#t.right(36)#t.begin_fill()#t.fillcolor("red")#t.color("white")#t.circle(12)#t.end_fill()

这段代码是定义了一个名为draw的函数,使用turtle库在画布上绘制花朵。在该函数中,首先通过设置笔的位置和角度,在画布上定位要绘制的花朵位置。接着,通过设置画笔颜色和填充颜色,在花瓣中绘制五角花瓣。其中,通过循环语句和圆弧函数circle()实现了绘制五角花瓣时的细节。最后,通过end_fill()函数来填充花朵内部的颜色。通过调用这个函数,每个花朵都可以在画布上展现出来,并且颜色、形状等属性也随机生成。

最后,给大家分享一份Python学习资料,都是我自己学习时整理的,希望可以帮到你!Python是一门非常不错的编程语言,就业前景好、薪资待遇高。可以应用于爬虫、web前端开发、后端开发、数据分析、人工智能、自动化测试等领域。即使你不想出去上班,也可以利用Python在家做兼职赚钱(比如爬取客户需要的数据、量化交易、代写程序等)。 是不是非常不错呢?

资料包括:Python安装包+激活码、Python web开发、Python爬虫、Python数据分析、Python自动化测试、人工智能等学习教程。0基础小白也能听懂、看懂!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述
二、Python学习软件

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述
三、Python入门学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
在这里插入图片描述
四、Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述
五、Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述
六、副业兼职
而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
七、资料领取
由于篇幅有限,很多资料图片放不上来。需要的小伙伴可以微信扫描下方CSDN官方认证二维码领取(免费免费免费)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1620494.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习花朵识别系统的设计与实现

摘要:该项目是基于Keras的VGG16模型微调实现的深度学习花朵识别检测系统,使用Python语言中的cv2和numpy库对图像进行预处理,使用keras的ImageDataGenerator进行数据增强,采用Pyqt5实现功能的可视化,方便用户对图片进行…

使用Pytorch实现图像花朵分类

基于pytorch-classifier这个源码进行实现的图像分类 代码的介绍在这个链接里面,这篇博客主要是为了带着大家通过实践的方式熟悉一下代码的使用,并且了解相关功能。 1. 下载相关资料 这里我提供了一个花朵数据集,里面总共有十个类别的花朵作…

“花朵分类“ 手把手搭建【卷积神经网络】

前言 本文介绍卷积神经网络的入门案例,通过搭建和训练一个模型,来对几种常见的花朵进行识别分类; 使用到TF的花朵数据集,它包含5类,即:“雏菊”,“蒲公英”,“玫瑰”,“向日葵”,“郁金香”;共 3670 张彩色图片;通过搭建和训练卷积神经网络模型,对图像进行分类,…

(笔记一)利用open_cv在图像上进行点标记,文字注记,画圆、多边形、椭圆

(1)CV2中的绘图函数: cv2.line() 绘制线条cv2.circle() 绘制圆cv2.rectangle() 绘制矩形cv2.ellipse() 绘制椭圆cv2.putText() 添加注记 (2)注释 img表示需要绘制的图像color表示线条的颜色,采用颜色矩阵…

桌面图标不显示

问题 桌面图标不显示 解决办法 鼠标 右击->选择-查看->显示桌面图标

今天去看看俺姐(老婆)新开的超市

首发博客地址 https://blog.zysicyj.top/ 1 昨晚写博客到12点多,今天困死了,比较意外的是,早上老爸没有叫我,今天早上是老爸和小舅送的葡萄。 所以呢,今早睡得很晚,然后6点多才醒,睡得真舒服&am…

java恶魔之怒太平洋_熊猫人之怒恶魔降临手游辅助下载_熊猫人之怒恶魔降临修改器安卓版V3.1下载(暂未上线)_预约_飞翔下载...

熊猫人之怒恶魔降临修改器是一款简单好用的安卓游戏修改神器。通过修改正在运行的游戏的内存数据,达到修改游戏中的金钱、血量、得分、道具数量、攻击、防御、魔法等参数值。既简单又实用,让你想怎么改,就怎么改,你的游戏你做主。…

LeetCode-738-单调递增的数字

题目描述&#xff1a; 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0c;且数字呈 单调递增 。 解题思路&#xff1a; 先将int变成char[]&#xff0c;获取…

UG+PRESSCAD五金连续模 成型模 复合模具设计视频教程

UGPRESSCAD五金连续模 成型模 复合模具设计视频教程 链接&#xff1a;https://pan.baidu.com/s/1MEQdf3DkmHAEHYOrP1USBQ 提取码&#xff1a;r9f0

教程 参数设置_UG教程之非切削参数设置

转移/快速 转移/快速指定如何从一个切削刀路移动到另一个切削刀路。通常情况下,刀具需要进行以下3个动作: (1)从其当前位置移动到指定的平面。 (2)移动到指定平面内高于进刀运动起点的位置。 (3)最后,刀具将从指定平面移动到进刀的起始处。 1.安全设置 功能:安全设置用于指…

在 WSL2 中使用 NVIDIA Docker 进行全栈开发和深度学习 TensorFlow pytorch GPU 加速

WSL2使用NVIDIA Docker进行全栈开发和深度学习 1. 前置条件 1.1. 安装系统 Windows 10 版本 2004 及更高版本&#xff08;内部版本 19041 及更高版本&#xff09;或 Windows 11 跳过 1.2. 处理好网络环境 安装过程中需要访问国际网络&#xff0c;自行处理好。建议开启 tu…

UML四大关系

文章目录 引言UML的定义和作用UML四大关系的重要性和应用场景关联关系继承关系聚合关系组合关系 UML四大关系的进一步讨论UML四大关系的实际应用软件开发中的应用其他领域的应用 总结 引言 在软件开发中&#xff0c;统一建模语言&#xff08;Unified Modeling Language&#x…

python+协同过滤算法实现简单的图书推荐系统

背景介绍 当我们做一些推荐系统网站时&#xff0c;通常需要合适的推荐算法&#xff0c;下面给大家介绍推荐系统中经典的推荐算法——协同过滤算法。在本文中通过Python语言&#xff0c;以一个图书推荐系统为案例&#xff0c;最终实现一个基于用户对图书的评分而对指定的用户个…

如何使用腾讯云服务器搭建网站?新手建站教程

使用腾讯云服务器搭建网站全流程&#xff0c;包括轻量应用服务器和云服务器CVM建站教程&#xff0c;轻量可以使用应用镜像一键建站&#xff0c;云服务器CVM可以通过安装宝塔面板的方式来搭建网站&#xff0c;腾讯云服务器网分享使用腾讯云服务器建站教程&#xff0c;新手站长搭…

代码随想录算法训练营第四十八天|LeetCode 583,72,编辑距离总结篇

目录 LeetCode 583.两个字符串的删除操作 动态规划五步曲&#xff1a; 1.确定dp[i][j]的含义 2.找出递推公式 3.初始化dp数组 4.确定遍历方向 5.打印dp数组 LeetCode 72.编辑距离 动态规划五步曲&#xff1a; 1.确定dp[i][j]的含义 2.找出递推公式 3.初始化dp数组 4.确定遍历方…

JAVA rs232

JAVA rs232 全套资源提供 全套项目资源环境都在我发布的资源里环境 MAVEN 依赖代码贴出 全套项目资源环境都在我发布的资源里 环境 Configure Virtual Serial Port Driver 模拟串口 友善串口工具调试 MAVEN 依赖 <dependency><groupId>org.bidib.jbidib.org.qba…

java输出hello world_java输出Hello World

一、输出“Hello World!” 1、新建一个java项目,点击File->New->Java Project,创建java项目的界面之后,输入项目名称wly,点击finish。 2、创建好java项目之后,鼠标右键项目,选择New->Class,创建一个类,mypackage为包名,Name类名Hello,首字母大写,点击fini…

二,java输出hello

1&#xff0c;创建文件Hello.java 2, 文件里输入 public class Hello{public static void main(String[] args){System.out.print("hello world!");} } 3&#xff0c; javac Hello.java 会生成一个class文件 4&#xff0c; 然后java Hello 注意&#xff1a; 1…

Go语言入门记录:从基础到变量、函数、控制语句、包引用、interface、panic、go协程、Channel、sync下的waitGroup和Once等

程序入口文件的包名必须是main&#xff0c;但主程序文件所在文件夹名称不必须是main&#xff0c;即我们下图hello_world.go在main中&#xff0c;所以感觉package main写顺理成章&#xff0c;但是如果我们把main目录名称改成随便的名字如filename也是可以运行的&#xff0c;所以…