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 相关文章推荐
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
Jul 11 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
Apr 11 Python
Python正则表达式经典入门教程
May 22 Python
一文总结学习Python的14张思维导图
Oct 17 Python
Python批量更改文件名的实现方法
Oct 29 Python
Atom的python插件和常用插件说明
Jul 08 Python
使用python获取电脑的磁盘信息方法
Nov 01 Python
Python数据可视化库seaborn的使用总结
Jan 15 Python
selenium+python自动化测试之环境搭建
Jan 23 Python
python爬虫 模拟登录人人网过程解析
Jul 31 Python
python使用协程实现并发操作的方法详解
Dec 27 Python
Python 图片添加美颜效果
Apr 28 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实现智能文件类型检测的实现代码
2011/08/02 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
2011/12/14 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
2010/05/18 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
JavaScript仿聊天室聊天记录
2016/12/27 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
vue router demo详解
2017/10/13 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
2018/08/31 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
python和flask中返回JSON数据的方法
2018/03/26 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
在pycharm中debug 实时查看数据操作(交互式)
2020/06/09 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
竞职演讲稿范文
2014/01/11 职场文书
先进个人推荐材料
2014/12/29 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python
jackson json序列化实现首字母大写,第二个字母需小写
2021/06/29 Java/Android
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL