利用Python實(shí)現(xiàn)好看的水波特效
前言
你的心要如溪水般柔軟,你的眼波要像春天般明媚。
——余光中

?似乎很少看見湍急的溪流,多數(shù)時(shí)候,溪水總是潺潺地流著,不疾不徐,有自己的節(jié)奏;
也似乎很少看見污濁的溪流,多數(shù)時(shí)候,溪水總是澄澈見底,偶爾拔起沙石,也很快能靜置溪底,重歸明凈。
一個(gè)像溪水的人,多半是通透清明的,他知道如何過濾掉和沉落生命中的雜質(zhì),以一顆澄澈的心,往自己的方向流去。

描寫了這么多關(guān)于水的詩句,你是否能清楚的表達(dá),了解水是怎樣流動(dòng)的呢?
今天小編就用代碼描寫我心目中的水流是怎樣的,Python代碼模擬水的波動(dòng)開始啦
一、運(yùn)行環(huán)境
1)環(huán)境安裝
Python3、 Pycharm 、Pygame模塊部分自帶模塊就不展示啦。(如需安裝包、激活碼等直接
私信我即可安裝問題解答都可以的哈~)
第三方庫的安裝:
pip install pygame 或者帶鏡像源 pip install -i https://pypi.douban.com/simple/ +模塊名
二、效果展示
截圖的貌似展示不出來水的波動(dòng)效果,嗨沒辦法 有點(diǎn)兒懶,就沒拍視頻,大家將就著看叭
真的視頻效果好好看滴!是隨水波蕩漾的~
1)第一組隨機(jī)風(fēng)景圖

2)第二組人物隨機(jī)圖

3)第三組真人圖片

三、代碼展示
"""照片模擬水的波動(dòng)效果"""
import pygame, os
from pygame.locals import *
from math import sin # 導(dǎo)入正弦函數(shù)的工具箱
import time
main_dir = os.path.split(os.path.abspath(__file__))[0] # 獲取當(dāng)前文件所在路徑
def main():
pygame.init() # 初始化
screen = pygame.display.set_mode((640, 480), HWSURFACE|DOUBLEBUF) # 生成一個(gè)窗口
imagename = os.path.join(main_dir, 'data', 'liquid.bmp') # 拼接圖片路徑
bitmap = pygame.image.load(imagename) # 加載圖片
bitmap = pygame.transform.scale2x(bitmap) # 將圖像放大兩倍
bitmap = pygame.transform.scale2x(bitmap) # 將圖像放大兩倍
if screen.get_bitsize() == 8: # 以相同的格式獲取圖像和屏幕
screen.set_palette(bitmap.get_palette())
else:
bitmap = bitmap.convert()
anim = 0.0
while 1:
for e in pygame.event.get(): # 處理事件
if e.type in [QUIT, KEYDOWN, MOUSEBUTTONDOWN]:
return
anim = anim + 0.02
for x in range(0,640,20): # 模擬水的波動(dòng)效果
xpos = (x + (sin(anim + x * .01) * 15)) + 20
for y in range(0, 480, 20):
ypos = (y + (sin(anim + y * .01) * 15)) + 20
screen.blit(bitmap, (x, y), (xpos, ypos, 20, 20))
pygame.display.flip() # 更新
time.sleep(0.01) # 等待0.01s
if __name__ == '__main__':
main()到此這篇關(guān)于利用Python實(shí)現(xiàn)好看的水波特效的文章就介紹到這了,更多相關(guān)Python水波特效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)約瑟夫環(huán)問題的方法
這篇文章主要介紹了Python實(shí)現(xiàn)約瑟夫環(huán)問題的方法,詳細(xì)分析了約瑟夫環(huán)問題的描述、原理與解決方法,需要的朋友可以參考下2016-05-05
對PyTorch torch.stack的實(shí)例講解
今天小編就為大家分享一篇對PyTorch torch.stack的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
Python函數(shù)使用的相關(guān)練習(xí)題分享
這篇文章主要介紹了Python函數(shù)使用的相關(guān)練習(xí)題分享,文章基于python函數(shù)內(nèi)容展開其相關(guān)例題,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05
keras model.fit 解決validation_spilt=num 的問題
這篇文章主要介紹了keras model.fit 解決validation_spilt=num 的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
詳解python實(shí)現(xiàn)數(shù)據(jù)歸一化處理的方式:(0,1)標(biāo)準(zhǔn)化
這篇文章主要介紹了詳解python實(shí)現(xiàn)數(shù)據(jù)歸一化處理的方式:(0,1)標(biāo)準(zhǔn)化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
centos 安裝python3.6環(huán)境并配置虛擬環(huán)境的詳細(xì)教程
這篇文章主要介紹了centos-安裝python3.6環(huán)境并配置虛擬環(huán)境的詳細(xì)教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-02-02
PyQt5中QPushButton的用法詳細(xì)解析與應(yīng)用實(shí)戰(zhàn)
PyQt5 是一個(gè)用于創(chuàng)建圖形用戶界面的 Python 綁定庫,它基于 Qt5 應(yīng)用程序框架,在 PyQt5 中,QPushButton 是一個(gè)常用的控件,用于創(chuàng)建按鈕,允許用戶通過點(diǎn)擊來觸發(fā)某些操作,本文將詳細(xì)介紹 QPushButton 的用法,并通過實(shí)際案例來展示其強(qiáng)大的功能2024-07-07

