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 相关文章推荐
跟老齐学Python之集合的关系
Sep 24 Python
python pandas库中DataFrame对行和列的操作实例讲解
Jun 09 Python
python控制nao机器人身体动作实例详解
Apr 29 Python
python中比较两个列表的实例方法
Jul 04 Python
使用python脚本自动创建pip.ini配置文件代码实例
Sep 20 Python
30秒学会30个超实用Python代码片段【收藏版】
Oct 15 Python
Python操作SQLite/MySQL/LMDB数据库的方法
Nov 07 Python
使用tensorflow实现矩阵分解方式
Feb 07 Python
Python中有几个关键字
Jun 04 Python
Python如何进行时间处理
Aug 06 Python
python常量折叠基础知识点讲解
Feb 28 Python
python库Tsmoothie模块数据平滑化异常点抓取
Jun 10 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
PHP.MVC的模板标签系统(五)
2006/09/05 PHP
PHP将字符分解为多个字符串的方法
2014/11/22 PHP
php+mysqli使用预处理技术进行数据库查询的方法
2015/01/28 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
angular-ui-sortable实现可拖拽排序列表
2016/12/28 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
五步轻松实现zTree的使用
2017/11/01 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
[02:19]2014DOTA2国际邀请赛 专访820少年们一起去追梦吧
2014/07/14 DOTA
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
Python遍历指定文件及文件夹的方法
2015/05/09 Python
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
Python中请不要再用re.compile了
2019/06/30 Python
python元组和字典的内建函数实例详解
2019/10/22 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
世界上最大的乐谱选择:Sheet Music Plus
2020/01/18 全球购物
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
测试驱动开发的主要步骤是什么
2014/12/10 面试题
软件测试有哪些?什么是配置项?
2012/02/12 面试题
CNC数控操作工岗位职责
2013/11/19 职场文书
教学实习自我评价
2014/01/28 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
田径运动会广播稿
2015/08/19 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书