Python绘画好看的星空图


Posted in Python onMarch 17, 2022

一、先来看看Python星空图代码绘制成品

1 两个人的星空

星空下,欲执子之手,相倚长青树。看皎洁月色,闻乡间气息,赏佳人芳心。

Python绘画好看的星空图

2 明月相伴的星空

圆圆明月赏晴空,星空满点洒心中。

Python绘画好看的星空图

3 浩瀚银河中的星空

银河系里的星系再散,再相遇总会在光年之外,碰撞不会化为尘埃是爱。

Python绘画好看的星空图

4 森林映衬下的星空

万千森林,只寻一处幽香。星河滚烫,你是人间理想。即便冰天雪地也尘封不了我对你的爱。

Python绘画好看的星空图

二、分解Python模拟3D星空图代码讲解

1 下载并加载库

turtle库(相当于给你一支画笔,你可以在画布上用数学逻辑控制的代码完成绘图)。
random库,可以生成随机数。

"""
代码用途:模拟3D星空
作者:阿黎逸阳
​
"""
from turtle import *
from random import random,randint

接下来挑选几段基本代码进行展示,全部代码可以在公众号后台回复 “3D星空图V2” ,即可获得完整源代码百度网盘链接。如果想看加了背景音乐的星空图请转至博客“加背景音乐和图片的星空图”。

2 设置屏幕和背景颜色

设置屏幕的像素,并把背景颜色设置为黑色。

s = Screen()
width ,height = 800,600
s.setup(width,height)          #输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例
s.title("模拟3D星空-阿黎逸阳")  #设置标题
s.bgcolor("black")  #设置背景颜色为黑色
s.mode("logo")      #设置乌龟模式(“standard”,“logo”或“world”)并执行重置,logo表示向上
s.delay(0)          #设置或返回以毫秒为单位的绘图延迟,这里要设为0,否则很卡

3 在屏幕的右下角写下文字

用海龟在屏幕的右下角写下喜欢的话,由于底色是黑色,所以把字体颜色设置为白色(write后面的文字可以替换成你喜欢的)。

printer = Turtle()
printer.hideturtle()
printer.penup()
printer.color('white')
printer.goto(-100,-150)
printer.write("In the whole universe\n\n",move = True, align="left", font=("Italic", 30, "bold"))
printer.goto(-300,-200)
printer.write("you're the only star belongs me!\n\n",move = True, align="left", font=("Italic", 30, "bold"))

4 设置绘圆圈的基本语句

设置绘制白色圆圈的基本语句:

t = Turtle(visible = False,shape='circle')
t.pencolor("white")        #设置画笔的颜色
t.fillcolor("white")       #设置图形填充颜色
t.penup()                  #抬起画笔
t.setheading(-90)          #设置当前朝向角度
t.goto(width/2,randint(-height/2,height/2))  #把画笔移动到定点

5 定义一个生成背景图片的函数

def bgpic(self, picname=None):
        if picname is None:
            return self._bgpicname
        if picname not in self._bgpics:
            self._bgpics[picname] = self._image(picname)
        self._setbgpic(self._bgpic, self._bgpics[picname])
        self._bgpicname = picname

6 在代码中加入生成背景图片的语句

from turtle import *
from random import random,randint
import os       #导入设置路径的库
import sys
from pygame.locals import *


os.chdir('F:/微信公众号/Python/0.已发表/23.绘制星空图/星空图v2')  #把路径改为数据存放的路径
screen = Screen()
width ,height = 800,600
screen.setup(width,height)          #输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例
screen.title("模拟3D星空-阿黎逸阳")  #设置标题
screen.bgcolor("black")            #设置背景颜色 darkblue
screen.bgpic(r'./两个背影.gif')
screen.mode("logo")               #设置乌龟模式(“standard”,“logo”或“world”)并执行重置,logo表示向上
screen.delay(0)                  #设置或返回以毫秒为单位的绘图延迟,这里要设为0,否则很卡

printer = Turtle()    
printer.hideturtle()

在添加背景图片时碰到了两个坑。一个是图片格式必须是gif,如果不是建议用画图打开,另存为gif格式。另一个是加载后图片太小,可能只有窗口的三分之一。可以在画图中重新调整图片的大小,把水平和垂直的值变大。

Python绘画好看的星空图

到此这篇关于Python绘画好看的星空图的文章就介绍到这了,更多相关Python绘星空图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
linux系统使用python获取内存使用信息脚本分享
Jan 15 Python
python3使用urllib模块制作网络爬虫
Apr 08 Python
全面了解Python环境配置及项目建立
Jun 30 Python
详解python发送各类邮件的主要方法
Dec 22 Python
和孩子一起学习python之变量命名规则
May 27 Python
numpy基础教程之np.linalg
Feb 12 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 Python
python调用API接口实现登陆短信验证
May 10 Python
python操作微信自动发消息的实现(微信聊天机器人)
Jul 14 Python
Java Unsafe类实现原理及测试代码
Sep 15 Python
python 实现定时任务的四种方式
Apr 01 Python
Python实现DBSCAN聚类算法并样例测试
Jun 22 Python
opencv深入浅出了解机器学习和深度学习
Python与C++中梯度方向直方图的实现
JAVA SpringMVC实现自定义拦截器
Mar 16 #Python
Python Pandas 删除列操作
Mar 16 #Python
Python实现批量自动整理文件
Mar 16 #Python
Pandas-DataFrame知识点汇总
Mar 16 #Python
python 安全地删除列表元素的方法
Mar 16 #Python
You might like
消息持续发送的完整例子
2006/10/09 PHP
如何使用PHP中的字符串函数
2006/11/24 PHP
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
javascript中的float运算精度实例分析
2010/08/21 Javascript
Jquery插件之多图片异步上传
2010/10/20 Javascript
图片在浏览器中底部对齐 解决方法之一
2011/11/30 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
JavaScript统计字符串中每个字符出现次数完整实例
2016/01/28 Javascript
JS面试题---关于算法台阶的问题
2016/07/26 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
Javascript之深入浅出prototype
2017/02/06 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
2019/10/30 Javascript
用Python编写简单的定时器的方法
2015/05/02 Python
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
python生成词云的实现方法(推荐)
2017/06/13 Python
基于python3 类的属性、方法、封装、继承实例讲解
2017/09/19 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
Django中url的反向查询的方法
2018/03/14 Python
opencv实现简单人脸识别
2021/02/19 Python
python多进程重复加载的解决方式
2019/12/13 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
药学专业毕业生求职信
2013/10/20 职场文书
班组长岗位职责范本
2014/01/05 职场文书
教师节促销活动方案
2014/02/14 职场文书
使用JS实现简易计算器
2021/06/14 Javascript