Python绘画好看的星空图

目录
  • 一、先来看看Python星空图代码绘制成品
    • 1两个人的星空
    • 2明月相伴的星空
    • 3浩瀚银河中的星空
    • 4森林映衬下的星空
  • 二、分解Python模拟3D星空图代码讲解
    • 1下载并加载库
    • 2设置屏幕和背景颜色
    • 3在屏幕的右下角写下文字
    • 4设置绘圆圈的基本语句
    • 5定义一个生成背景图片的函数
    • 6在代码中加入生成背景图片的语句

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

1 两个人的星空

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

2 明月相伴的星空

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

3 浩瀚银河中的星空

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

4 森林映衬下的星空

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

二、分解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绘星空图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 你们要的Python绘画3D太阳系详细代码

    用Python画一个平面的太阳系得到一些朋友的欣赏,然后有同学提出了绘制三维太阳系的要求. 从Python画图的角度来说,三维太阳系其实并不难,问题在于八大行星对黄道面的倾斜太小,所以尽管画个三维的图,但就观感而言,无非是把二维的嵌入到三维空间罢了. 来点小行星 代码如下 from os import cpu_count import numpy as np from numpy.random import rand import matplotlib.pyplot as plt from ma

  • Python趣味挑战之turtle库绘画飘落的银杏树

    一.导入所需的库 import turtle import random from math import * 二.生成斐波那契数列 斐波那契数列是指前两项的和加起来等于后一项的一个数列,这里使用了两个函数来生成斐波契那数列. def Fibonacci_Recursion_tool(n): #斐波那契数列方法 if n <= 0: return 0 elif n == 1: return 1 else: return Fibonacci_Recursion_tool(n - 1) + Fibo

  • 一篇文章教你用Python绘画一个太阳系

    目录 日地月三体 日地火 太阳系 你们要的3D太阳系 图片上传之后不知为何帧率降低了许多... 日地月三体 所谓三体,就是三个物体在重力作用下的运动.由于三点共面,所以三个质点仅在重力作用下的运动轨迹也必然无法逃离平面. 三体运动所遵循的规律就是古老而经典的万有引力 则对于 m i 而言, 且 将其写为差分形式 由于我们希望观察三体运动的复杂形式,而不关系其随对应的宇宙星体,所以不必考虑单位制,将其在二维平面坐标系中拆分,则 #后续代码主要更改这里的参数 m = [1.33e20,3.98e14

  • python用turtle库绘画圣诞树

    目录 前言 一.Turtle是什么? 二.使用步骤 1.引入库 2.turtle绘图的基础知识 三.圣诞树代码 总结 前言 圣诞节快到了,是不是想用python画一个可爱的圣诞树,我在各大网站都查了一下,都不太美观,然后我就学习了一下别人的代码改写了一下,自己加了一些东西,弄的好看一些了,给大家开源出来,欢迎大家指正学习,也欢迎转载,请注明出处哦~ 画出来的图形如图: 一.Turtle是什么? Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为

  • python openCV自制绘画板

    本文实例为大家分享了python openCV自制绘画板的具体代码,供大家参考,具体内容如下 import numpy as np import cv2 def nothing(x): pass cv2.namedWindow('image') img = np.zeros((512,512,3),np.uint8) cv2.createTrackbar('R','image',0,255,nothing) cv2.createTrackbar('G','image',0,255,nothing

  • 基于Python中的turtle绘画星星和星空

    目录 前言: 一.画一个N边形 二.画五角星 三.一闪一闪亮晶晶 前言: Python 中的画图工具——turtle(海龟绘图),turtle 是 Python 中自带的绘图模块,最初来自于 Wally Feurzeig, Seymour Papert 和 Cynthia Solomon 于 1967 年所创造的 Logo 编程语言. 使用 turtle 控制画笔在画板上画画.而这个画笔是有形状的,默认是一个小箭头,我们可以使用 turtle.shape('turtle') 将其设成一个小海龟.

  • Python绘画好看的星空图

    目录 一.先来看看Python星空图代码绘制成品 1两个人的星空 2明月相伴的星空 3浩瀚银河中的星空 4森林映衬下的星空 二.分解Python模拟3D星空图代码讲解 1下载并加载库 2设置屏幕和背景颜色 3在屏幕的右下角写下文字 4设置绘圆圈的基本语句 5定义一个生成背景图片的函数 6在代码中加入生成背景图片的语句 一.先来看看Python星空图代码绘制成品 1 两个人的星空 星空下,欲执子之手,相倚长青树.看皎洁月色,闻乡间气息,赏佳人芳心. 2 明月相伴的星空 圆圆明月赏晴空,星空满点洒心

  • 利用Python实现好看的水波特效

    目录 前言 一.运行环境 二.效果展示 1)第一组随机风景图 2)第二组人物随机图 3)第三组真人图片 三.代码展示 前言 你的心要如溪水般柔软,你的眼波要像春天般明媚. ——余光中 ​似乎很少看见湍急的溪流,多数时候,溪水总是潺潺地流着,不疾不徐,有自己的节奏: 也似乎很少看见污浊的溪流,多数时候,溪水总是澄澈见底,偶尔拔起沙石,也很快能静置溪底,重归明净. 一个像溪水的人,多半是通透清明的,他知道如何过滤掉和沉落生命中的杂质,以一颗澄澈的心,往自己的方向流去. 描写了这么多关于水的诗句,你是

  • python实现好看的时钟效果

    使用python制作好看的时钟,供大家参考,具体内容如下 游戏用到初高中使用的三角函数等知识开发,长话短说,上完整程序. #-*- coding:utf-8 -*- import sys,random,math,pygame from pygame.locals import * from datetime import datetime,date,time def print_text(font,x,y,text,color=(255,255,255)):     imgText=font.r

  • 利用Python绘制好看的玫瑰花图

    目录 一.基本极坐标图 二.极半径图 参数介绍 三.画玫瑰花图 AngleAxisOpts参数介绍: TooltipOpts参数介绍: 开始画玫瑰花图 今天主要给大家介绍如何用pyecharts画各种漂亮的数学图形 一.基本极坐标图 说简单点,基本极坐标图就是圆形的散点图(柱状图或折线图),代码如下: import random from pyecharts import options as opts from pyecharts.charts import Polar data = [(i,

  • 利用Python绘画双摆操作分享

    目录 双摆问题 2.运动过程 3.公式推导过程 双摆问题 所谓双摆,就是两个连在一起的摆. 接下来本来是要推公式的,考虑考虑到大家可能会有公式恐惧症,同时又喜欢看图,所以把公式挪到后面. 所以,只需知道角速度的微分方程,就可写出对应的代码,其方程如下: 从而转为代码得到: # 其中,lam,mu,G_L1,M为全局变量 def derivs(state, t):     dydx = np.zeros_like(state)     th1,om1,th2,om2 = state     dyd

  • python实现心型照片墙效果

    今天分享如何用python制作好看的心型照片墙,供大家参考,具体内容如下 效果 我们先来看下效果图,了解我们接下来要做的事情,我的效果图如下: 感觉如何?如果还满意,看完幸苦点个赞,因为看完你也可以做出来!同时也是对我的一种反馈 思路 上代码之前,我们先来理清下思路,只有过程理清楚了,才能得到自己的想要的结果 制作这个我觉得最难的地方就在于每个图片的位置该怎么计算,才能凑成一个心型.但是没关系,我们不去计算,毕竟我数学很差,我采用土办法,直接把它位置写死,虽然稍微有点麻烦,但是灵活~ 大家都知道

随机推荐