人机交互到艺术设计及玫瑰花绘制实例

news2024/11/26 14:37:28

Python库之图形用户界面

Riverbank Computing | Introduction 

 

 Welcome to wxPython! | wxPython

 

 Overview — PyGObject 

 

Python库之游戏开发

https://www.pygame.org/news 

  Panda3D | Open Source Framework for 3D Rendering & Games 

 python.cocos2d.org

Python库之虚拟现实

 WayneKeenan/python-vrzero: There's a blog about this repository here: (github.com)

 cmbruns/pyovr: Python bindings for Oculus Rift virtual reality SDK (github.com) 

 Vizard | Virtual Reality software for researchers (worldviz.com)

 Python库之图形艺术

fogleman/Quads: Computer art based on quadtrees. (github.com) 

 jontonsoup4/ascii_art: Converts images to ASCII art (github.com)

 turtle — Turtle graphics — Python 3.11.3 documentation

玫瑰花绘制实例 

import turtle as t
# 定义一个曲线绘制函数
def DegreeCurve(n, r, d=1):
    for i in range(n):
        t.left(d)
        t.circle(r, abs(d))
# 初始位置设定
s = 0.2 # size
t.setup(450*5*s, 750*5*s)
t.pencolor("black")
t.fillcolor("red")
t.speed(100)
t.penup()
t.goto(0, 900*s)
t.pendown()
# 绘制花朵形状
t.begin_fill()
t.circle(200*s,30)
DegreeCurve(60, 50*s)
t.circle(200*s,30)
DegreeCurve(4, 100*s)
t.circle(200*s,50)
DegreeCurve(50, 50*s)
t.circle(350*s,65)
DegreeCurve(40, 70*s)
t.circle(150*s,50)
DegreeCurve(20, 50*s, -1)
t.circle(400*s,60)
DegreeCurve(18, 50*s)
t.fd(250*s)
t.right(150)
t.circle(-500*s,12)
t.left(140)
t.circle(550*s,110)
t.left(27)
t.circle(650*s,100)
t.left(130)
t.circle(-300*s,20)
t.right(123)
t.circle(220*s,57)
t.end_fill()
# 绘制花枝形状
t.left(120)
t.fd(280*s)
t.left(115)
t.circle(300*s,33)
t.left(180)
t.circle(-300*s,33)
DegreeCurve(70, 225*s, -1)
t.circle(350*s,104)
t.left(90)
t.circle(200*s,105)
t.circle(-500*s,63)
t.penup()
t.goto(170*s,-30*s)
t.pendown()
t.left(160)
DegreeCurve(20, 2500*s)
DegreeCurve(220, 250*s, -1)
# 绘制一个绿色叶子
t.fillcolor('green')
t.penup()
t.goto(670*s,-180*s)
t.pendown()
t.right(140)
t.begin_fill()
t.circle(300*s,120)
t.left(60)
t.circle(300*s,120)
t.end_fill()
t.penup()
t.goto(180*s,-550*s)
t.pendown()
t.right(85)
t.circle(600*s,40)
# 绘制另一个绿色叶子
t.penup()
t.goto(-150*s,-1000*s)
t.pendown()
t.begin_fill()
t.rt(120)
t.circle(300*s,115)
t.left(75)
t.circle(300*s,100)
t.end_fill()
t.penup()
t.goto(430*s,-1070*s)
t.pendown()
t.right(30)
t.circle(-600*s,35)
t.done()

这段代码使用turtle模块绘制了一个玫瑰花的图案。具体实现如下:

  1. 定义了一个函数DegreeCurve,该函数用于绘制一条弧线,包含三个参数:n为绘制的弧线的线段数,r为弧线的半径,d为绘制方向,即正值为逆时针,负值为顺时针。

  2. 初始化turtle画布的大小、画笔颜色和填充颜色等参数,并设定绘制速度。

  3. 绘制花朵形状:首先绘制一个圆形,然后绘制两段半径为200s的弧线和一段100s的弧线,接着绘制两段半径为50s的曲线和一段半径为350s的弧线,最后绘制一段半径为70s的曲线、一段半径为150s的弧线、一段半径为50s的曲线、一段半径为400s的弧线、一段半径为50s的曲线和一段前进250s的直线。

  4. 绘制花枝形状:向右旋转150度,前进280s,向左旋转115度,绘制一段半径为300s的弧线、一段半径为225s的曲线、一段半径为350s的弧线、向左旋转90度、绘制一段半径为200s的弧线和一段半径为500s的弧线,最后绘制一段20个线段、半径为2500s的曲线和一段220个线段、半径为250s的曲线。

  5. 绘制两个绿色的叶子:分别绘制两个半径为300s的圆弧和一段前进600s的直线,然后绘制第二个叶子,包含两段半径为300s和一段半径为600s的弧线。

  6. 绘制完成后,关闭turtle画布。

 

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

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

相关文章

MATLAB科研数据可视化

互联网的飞速发展伴随着海量信息的产生,而海量信息的背后对应的则是海量数据。如何从这些海量数据中获取有价值的信息来供人们学习和工作使用,这就不得不用到大数据挖掘和分析技术。数据可视化分析作为大数据技术的核心一环,其重要性不言而喻…

scss、css样式中使用变量的方法;Vue动态改变css等样式文件中的变量

目录 一、问题 二、原因及解决方法 三、总结 一、问题 1.遇到一些样式 设置的值都是重复的不想重复写,想和js一样定义一个常量,然后直接引用这个常量。 2.想要在js中动态设置样式中的值,在 css、scss等样式表中直接使用。 二、原因及解…

nacos实战

spring cloud是一系列框架的有序集合,是分布式系统构建工具 服务领域模型 不同的组(group)之间不能调用,只能进行组内调用 namespace》group/service》cluster》instance 没有nacos的时候 微服务调用,可以直接使用Re…

React18开发总结(完善中)

遇到这样一个问题,初始化时用户登陆后需要获取到用户信息,但是发现获取用户信息这个接口触发了2次,这是不应该的,于是我查阅了一下资料,把自己的笔记记录下来。 还有就是使用mobx遇到的控制台警告问题,也一…

Python 中如何实现自动导入缺失的库?

在编写 Python 项目的时候,我们经常会遇到导入模块失败的错误: ImportError: No module named xxx或者ModuleNotFoundError: No module named xxx 导入失败,通常分为两种:一种是导入自己写的模块(即以 .py 为后缀的文件…

你不想成长,生活总会逼着你成长,阿里P8架构师分享十年学习生涯

成为阿里P8,并不是一件容易的事情,我花了将近十年的时间,才达到了这样的目标。这十年间来,说辛苦也是真辛苦,但这些辛苦是让我感觉到满足的,毕竟这样的成功并不是人人都能够得来的。 为了成为阿里P8的这十…

Linux(ubuntu) 挂载磁盘

前言 很多博客写了一些格式化磁盘,分区等等,这和挂载磁盘的概念是混淆的。分区是为了安装系统,我们挂载磁盘肯定是已经安装好Ubuntu 系统了,分区干什么,误人子弟啊。 另外格式化磁盘并不是挂载磁盘必须的选项&#x…

55.网页设计规则#3_图片和插图

使用好的图片 图片类型 不同类型的图像:产品照片、故事性照片、插图、图案;使用图片来支持你网站的信息和故事。所以只使用相关的图片倾向于使用原始图片。如果不可能,请使用原始外观的图片(而不是一般的图片!&#…

Numpy方法总简单说明作用

NumPy的大部分代码都是用C语言写的,其底层算法在设计时就有着优异的性能,这使得NumPy比纯Python代码高效得多 NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python…

JAVAWeb10-Web 开发会话技术-Session-02

1. session 有什么用 ● 思考两个问题—抛砖引玉 不同的用户登录网站后,不管该用户浏览该网站的哪个页面,都可显示登录人的名字,还可以随时去查看自己的购物车中的商品, 是如何实现的?也就是说,一个用户在浏览网站不同页面时&a…

如何高效的学习接口自动化测试?从零开始学习接口自动化测试:选择合适的学习资源和编程语言

目录 引言: 一、学习前的准备 二、选择合适的学习资源 三、实践中学习 四、总结 引言: 在日常的软件开发过程中,接口自动化测试是一个非常重要的环节。接口自动化测试可以帮助我们快速准确地检测出软件中的缺陷,提高软件的质…

更简单的存取Bean方式-@Bean方法注解

1.Bean方法存储 类注解是添加在某个类上的,那么方法注解是添加在某个方法前的 public class UserBeans {Beanpublic User user1(){User user new User();user.setUid(001);user.setUname("zhangsan");user.setAge(19);user.setPassword("123123");retur…

Git/Github操作手册

Git 是目前最流行的版本管理工具,也是程序员的必备技能之一。 这里主要介绍一下git/github远程仓库的使用及相关配置: 一、SSH Keys SSH Keys是什么呢?简单来说相当于一把钥匙(在机器中即电脑中进行配置)&#xff0…

【Java数据结构】——第九节.向上建堆和向下建堆的区别

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:Java初阶数据结构 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目…

算法训练 | Day41动态规划

343. 整数拆分 思路: 确定dp数组(dp table)以及下标的含义:dp[i]:分拆数字i,可以得到的最大乘积为dp[i]。 确定递推公式:dp[i] max(dp[i], max((i - j) * j, dp[i - j] * j)) 可以想 dp[i]最…

TimesNet

Key Points 1D变2D 这是本文的核心。大部分现有方法都是作用于时间序列的时间维度,捕获时序依赖性。实际上,现实时间序列一般都有多种模式,比如不同的周期,各种趋势,这些模式混杂在一起。如果直接对原始序列的时间维…

SpringTask任务调度工具的使用

1. Spring Task 1.1 介绍 Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。 **定位:**定时任务框架 **作用:**定时自动执行某段Java代码 应用场景: 1). 信用卡每月还款提醒 **强调&…

网络机顶盒哪个好?发烧友实测2023网络机顶盒排名

不懂网络机顶盒哪个好的新手们在选购时大部分会参考排行榜,某知名权威数码网站公布了2023年最新网络机顶盒排名,结果是否公正呢?我自费购入了排名前五的网络机顶盒,进行了十多天的深入测评,今天就来详细聊聊我的真实体…

最近部门新的00后真是卷王,工作没1年,入职18K

都说00后躺平了,但是有一说一,该卷的还是卷。 这不,前段时间我们公司来了个00后,工作都没1年,到我们公司起薪18K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。 …

2.2 逻辑代数中的三种基本运算

学习建议: 理解运算符的含义:首先,我们需要理解每个逻辑运算符的含义。例如,“与”运算符表示两个输入信号同时为真时输出为真,而“或”运算符表示两个输入信号中至少一个为真时输出为真。 练习运算符的应用&#xff…