当前位置: 首页 > news >正文

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

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.lryc.cn/news/62917.html

相关文章:

  • 多臂老虎机问题
  • DNS 查询原理详解
  • 浅谈软件测试工程师的技能树
  • 转型产业互联网,新氧能否再造辉煌?
  • CRE66365 应用资料
  • vue3快速上手学习笔记,还不快来看看?
  • HDU 5927 Auxiliary Set
  • 24:若所有参数皆需类型转换,请为此采用non-member函数
  • CMake(2)-详解-编译-安装-支持GDB-添加环境检查-添加版本号-生成安装包
  • java面试题(redis)
  • Vue组件懒加载
  • Qt音视频开发42-网络推流(视频推流/本地摄像头推流/桌面推流/网络摄像头转发推流等)
  • 更简单的存取Bean方式-@Bean方法注解
  • 边缘计算与AI布署应用电力物联网解决方案-RK3588开发平台
  • centos部署unity accelerator
  • HANA开发指南
  • 请问你见过吐代码的泡泡吗(冒泡排序)
  • 【VM服务管家】VM4.0平台SDK_2.1环境配置类
  • 最新研究:可审计的具有拜占庭鲁棒的联邦学习方案
  • JDK1.8下载、安装和环境配置教程
  • 天津超算,青索帮助文档
  • SpringMVC的拦截器和异常处理器
  • 查看库文件是32位还是64位|查看lib是静态库还是导入库|判断是debug模式还是release模式
  • Python小姿势 - Python爬取数据的库——Scrapy
  • [C++初阶]栈和队列_优先级队列的模拟实现 deque类 的理解
  • Spring是什么?关于Spring家族
  • 自然语言处理数据集集锦(持续更新ing...)
  • 93、Dehazing-NeRF: Neural Radiance Fields from Hazy Images
  • JAVA子类与继承
  • 62 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库