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

作者:木木子学python 时间:2023-05-26 22:23:53 

前言

你的心要如溪水般柔软,你的眼波要像春天般明媚。

 ——余光中

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

似乎很少看见湍急的溪流,多数时候,溪水总是潺潺地流着,不疾不徐,有自己的节奏;

也似乎很少看见污浊的溪流,多数时候,溪水总是澄澈见底,偶尔拔起沙石,也很快能静置溪底,重归明净。

一个像溪水的人,多半是通透清明的,他知道如何过滤掉和沉落生命中的杂质,以一颗澄澈的心,往自己的方向流去。

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

描写了这么多关于水的诗句,你是否能清楚的表达,了解水是怎样流动的呢?

今天小编就用代码描写我心目中的水流是怎样的,Python代码模拟水的波动开始啦

一、运行环境

 1)环境安装 

Python3、 Pycharm 、Pygame模块部分自带模块就不展示啦。(如需安装包、激活码等直接  

私信我即可安装问题解答都可以的哈~) 

 第三方库的安装:

pip install pygame 或者带镜像源 pip install -i https://pypi.douban.com/simple/ +模块名   

二、效果展示

截图的貌似展示不出来水的波动效果,嗨没办法 有点儿懒,就没拍视频,大家将就着看叭

真的视频效果好好看滴!是随水波荡漾的~

1)第一组随机风景图

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

2)第二组人物随机图

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

3)第三组真人图片

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

三、代码展示

"""照片模拟水的波动效果"""
import pygame, os
from pygame.locals import *
from math import sin  # 导入正弦函数的工具箱
import time

main_dir = os.path.split(os.path.abspath(__file__))[0]  # 获取当前文件所在路径

def main():
   pygame.init()  # 初始化
   screen = pygame.display.set_mode((640, 480), HWSURFACE|DOUBLEBUF)  # 生成一个窗口

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):   # 模拟水的波动效果
           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()

来源:https://juejin.cn/post/7091633252250681374

标签:Python,水波,特效
0
投稿

猜你喜欢

  • Cookies 欺骗漏洞的防范方法(vbs+js 实现)

    2011-03-09 11:09:00
  • 一段Asp301重定向过程代码

    2010-05-04 16:38:00
  • python 实现docx与doc文件的互相转换

    2022-01-19 06:45:58
  • Python3 利用face_recognition实现人脸识别的方法

    2023-11-05 05:08:02
  • vue 需求 data中的数据之间的调用操作

    2023-07-02 16:52:03
  • Python中def()函数的实战练习题

    2023-02-13 02:04:54
  • 深入浅析Python中join 和 split详解(推荐)

    2022-09-19 17:43:38
  • Python+Tkinter制作猜灯谜小游戏

    2021-09-24 19:43:17
  • python爬虫将js转化成json实现示例

    2021-10-20 15:32:31
  • Python之——生成动态路由轨迹图的实例

    2023-01-11 17:50:37
  • MySQL系列之十 MySQL事务隔离实现并发控制

    2024-01-25 20:57:35
  • Python中Pyspider爬虫框架的基本使用详解

    2021-04-01 06:00:31
  • 一文详解golang通过io包进行文件读写

    2024-05-09 10:07:52
  • JS/jQuery实现简单的开关灯效果【案例】

    2024-04-18 09:30:38
  • springboot配置文件抽离 git管理统 配置中心详解

    2021-05-24 08:17:18
  • Python 给某个文件名添加时间戳的方法

    2023-02-10 21:12:56
  • MySQL 两张表数据合并的实现

    2024-01-28 07:25:49
  • Python folium的实用功能详解

    2021-08-27 10:07:21
  • Python深度学习pyTorch权重衰减与L2范数正则化解析

    2021-03-18 11:39:01
  • js+css在交互上的应用

    2024-04-17 10:37:49
  • asp之家 网络编程 m.aspxhome.com