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 相关文章推荐
Centos Python2 升级到Python3的简单实现
Jun 21 Python
Python实现求一个集合所有子集的示例
May 04 Python
Python返回数组/List长度的实例
Jun 23 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
Django 通过JS实现ajax过程详解
Jul 30 Python
使用Python完成15位18位身份证的互转功能
Nov 06 Python
用python爬取历史天气数据的方法示例
Dec 30 Python
Python enumerate() 函数如何实现索引功能
Jun 29 Python
python cv2.resize函数high和width注意事项说明
Jul 05 Python
如何利用python生成MD5并去重
Dec 07 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
Feb 01 Python
详解Python requests模块
Jun 21 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
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
php 什么是PEAR?
2009/03/19 PHP
模板引擎正则表达式调试小技巧
2011/07/20 PHP
Symfony2创建基于域名的路由相关示例
2016/11/14 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
My Desktop :) 桌面式代码
2008/12/29 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
详解JavaScript中shift()方法的使用
2015/06/09 Javascript
浅析JavaScript动画
2015/06/10 Javascript
浅析JS获取url中的参数实例代码
2016/06/14 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
2016/08/25 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
通过构造函数实例化对象的方法
2017/06/28 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
2017/11/09 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
2018/05/28 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
python实现给数组按片赋值的方法
2015/07/28 Python
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
python redis存入字典序列化存储教程
2020/07/16 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
2020/08/05 Python
PyTorch安装与基本使用详解
2020/08/31 Python
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题