Python繪畫好看的星空圖
一、先來看看Python星空圖代碼繪制成品
1 兩個人的星空
星空下,欲執(zhí)子之手,相倚長青樹??答嵲律?,聞鄉(xiāng)間氣息,賞佳人芳心。
2 明月相伴的星空
圓圓明月賞晴空,星空滿點(diǎn)灑心中。
3 浩瀚銀河中的星空
銀河系里的星系再散,再相遇總會在光年之外,碰撞不會化為塵埃是愛。
4 森林映襯下的星空
萬千森林,只尋一處幽香。星河滾燙,你是人間理想。即便冰天雪地也塵封不了我對你的愛。
二、分解Python模擬3D星空圖代碼講解
1 下載并加載庫
turtle庫(相當(dāng)于給你一支畫筆,你可以在畫布上用數(shù)學(xué)邏輯控制的代碼完成繪圖)。
random庫,可以生成隨機(jī)數(shù)。
""" 代碼用途:模擬3D星空 作者:阿黎逸陽 ? """ from turtle import * from random import random,randint
接下來挑選幾段基本代碼進(jìn)行展示
2 設(shè)置屏幕和背景顏色
設(shè)置屏幕的像素,并把背景顏色設(shè)置為黑色。
s = Screen() width ,height = 800,600 s.setup(width,height) ? ? ? ? ?#輸入寬和高為整數(shù)時, 表示像素; 為小數(shù)時, 表示占據(jù)電腦屏幕的比例 s.title("模擬3D星空-阿黎逸陽") ?#設(shè)置標(biāo)題 s.bgcolor("black") ?#設(shè)置背景顏色為黑色 s.mode("logo") ? ? ?#設(shè)置烏龜模式(“standard”,“l(fā)ogo”或“world”)并執(zhí)行重置,logo表示向上 s.delay(0) ? ? ? ? ?#設(shè)置或返回以毫秒為單位的繪圖延遲,這里要設(shè)為0,否則很卡
3 在屏幕的右下角寫下文字
用海龜在屏幕的右下角寫下喜歡的話,由于底色是黑色,所以把字體顏色設(shè)置為白色(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 設(shè)置繪圓圈的基本語句
設(shè)置繪制白色圓圈的基本語句:
t = Turtle(visible = False,shape='circle') t.pencolor("white") ? ? ? ?#設(shè)置畫筆的顏色 t.fillcolor("white") ? ? ? #設(shè)置圖形填充顏色 t.penup() ? ? ? ? ? ? ? ? ?#抬起畫筆 t.setheading(-90) ? ? ? ? ?#設(shè)置當(dāng)前朝向角度 t.goto(width/2,randint(-height/2,height/2)) ?#把畫筆移動到定點(diǎn)
5 定義一個生成背景圖片的函數(shù)
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 ? ? ? #導(dǎo)入設(shè)置路徑的庫 import sys from pygame.locals import * os.chdir('F:/微信公眾號/Python/0.已發(fā)表/23.繪制星空圖/星空圖v2') ?#把路徑改為數(shù)據(jù)存放的路徑 screen = Screen() width ,height = 800,600 screen.setup(width,height) ? ? ? ? ?#輸入寬和高為整數(shù)時, 表示像素; 為小數(shù)時, 表示占據(jù)電腦屏幕的比例 screen.title("模擬3D星空-阿黎逸陽") ?#設(shè)置標(biāo)題 screen.bgcolor("black") ? ? ? ? ? ?#設(shè)置背景顏色 darkblue screen.bgpic(r'./兩個背影.gif') screen.mode("logo") ? ? ? ? ? ? ? #設(shè)置烏龜模式(“standard”,“l(fā)ogo”或“world”)并執(zhí)行重置,logo表示向上 screen.delay(0) ? ? ? ? ? ? ? ? ?#設(shè)置或返回以毫秒為單位的繪圖延遲,這里要設(shè)為0,否則很卡 printer = Turtle() ? ? printer.hideturtle()
在添加背景圖片時碰到了兩個坑。一個是圖片格式必須是gif,如果不是建議用畫圖打開,另存為gif格式。另一個是加載后圖片太小,可能只有窗口的三分之一??梢栽诋媹D中重新調(diào)整圖片的大小,把水平和垂直的值變大。
三、加音樂播放器
4 加載庫并設(shè)置文件路徑
# coding: utf-8 import pygame ? #導(dǎo)入可以加載音樂的庫 import os ? ? ? #導(dǎo)入設(shè)置路徑的庫 os.chdir('F:/微信公眾號/Python/29.加載音樂') ?#把路徑改為數(shù)據(jù)存放的路徑 os.getcwd() ? ?#看下當(dāng)前路徑
5 播放音樂
本段代碼可以在Python
中實現(xiàn)簡單的音樂播放功能,并設(shè)定慢慢淡化并退出音樂的語句。
pygame.mixer.init() ? ? ? ? ? ? ? ? ? ? ? ? ? # 初始化 track = pygame.mixer.music.load('星空.mp3') ? # 加載音樂文件 pygame.mixer.music.play() ? ? ? ? ? ? ? ? ? ? # 開始播放音樂流 pygame.mixer.music.fadeout(60000) ? ? ? ? ? ? # 設(shè)置音樂多久慢慢淡出結(jié)束
到此這篇關(guān)于Python繪畫好看的星空圖的文章就介紹到這了,更多相關(guān)Python繪星空圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pytest接口測試之fixture傳參數(shù)request的使用
本文主要介紹了pytest接口測試之fixture傳參數(shù)request的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08Python tkinter 樹形列表控件(Treeview)的使用方法
這篇文章主要介紹了Python tkinter 樹形列表控件(Treeview)的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Python常用內(nèi)建模塊hashlib、hmac詳解
這篇文章主要介紹了Python常用內(nèi)建模塊hashlib、hmac詳解,摘要算法又稱哈希算法、散列算法,它通過一個函數(shù),把任意長度的數(shù)據(jù)轉(zhuǎn)換為一個長度固定的數(shù)據(jù)串,需要的朋友可以參考下2023-08-08詳解Python的Django框架中inclusion_tag的使用
這篇文章主要介紹了詳解Python的Django框架中inclusion_tag的使用,文中示例基于Python較早的2.x版本,希望能夠注意一下,需要的朋友可以參考下2015-07-07