91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

馬哥Linux運維 ? 來源:電子發燒友網 ? 作者:工程師譚軍 ? 2018-07-13 08:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

安裝

可以通過PyPi安裝

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

或者通過Git

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

為什么你需要這個庫?

問:我是一個Python迷,并且對迷宮的生成和迷宮解決的辦法非常感興趣。我很羨慕別人能夠做出生成迷宮的動畫。我如何能夠用Python自己做一個迷宮動畫,然后把我的成果展示給其他人呢?(我知道tkinter, pyglet 和 pyqt,但是它們很難發布給別人看)

答:現在,你可以使用庫gifmaz來做這件事了,它有一些很好的特性:

1、它是純Python編寫的,沒有第三方依賴,只使用內置模塊!(如果你想把動畫嵌入圖片,那么你需要PIL,PIL雖然不是內置模塊,但是任何Python版都支持PIL。除此之外再沒有其他的依賴了)

2、它運行速度很快,而且幾秒鐘就能生成優化過的GIF圖片。每個GIF通常都包含上千幀,但是GIF大小確只有幾百KB。

3、你可以繪制各種各樣的迷宮動畫,和解迷宮動畫。

4、代碼都有很好的注釋,文檔有很好的范例,而且文檔很完整。

這個庫的一個教程

首先我們需要構建一個GIFSurface對象(類似cairo的ImageSurface類),我們的動畫將會畫在這個對象上。同時,我們需要指定圖片的大小和可用的顏色數量。

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

這里color_depth=2意味著調色板中有2^2=4種顏色,bg_color=0說明調色板中的第0個顏色被作為背景色。

只要你還沒有最后保存圖片,你都可以更改設置調色板,你可以這樣做

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

所以圖片中可以用的顏色有:黑、白、品紅、黑。

然后我們構建一個環境,生成的動畫基于這個環境構建(類似cairo的Context類)。

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

然后我們設置這個動畫的控制參數

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

這些參數的意思是“每20步渲染一幀,幀之間間隙0.05s,調色板中第四個顏色作為通明度通道”。

我們有了繪制動畫的“桌面”,和繪制動畫需要的參數,接下來就是實際地畫一個迷宮了。

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

這個語句在圖片中央繪制了一個迷宮,然后在四邊留了8像素的空白,迷宮中每一格在圖片中占據5像素*5像素的大小。

然后讓我們運行Prim的迷宮算法

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

其中我加了兩個延遲幀,以便我們能夠看清楚動畫的過程。

完成了!讓我們把這個動畫保存到GIF文件。

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

下面是運行結果,大小小于300K,很贊吧!

當然,你也可以把多個算法整合進一個動畫。下面的動畫展示了隨機深度優先搜索算法和A*搜索算法。(這個圖片只有120K)

這個庫的原理是什么?

這個庫實際上是一個GIF的編碼庫,算法運行過程中,動畫幀被編碼為BytesIO文件。只有在調用save方法時,動畫才會真正地被存入圖片。

深度資料

1、什么是GIF:http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp。

2、迷宮生成算法:http://weblog.jamisbuck.org/2011/2/7/maze-generation-algorithm-recap

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4827

    瀏覽量

    86694
  • GIF
    GIF
    +關注

    關注

    0

    文章

    24

    瀏覽量

    6820

原文標題:用Python制作迷宮GIF

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ?如何在虛擬環境中使用 Python,提升的開發體驗~

    RaspberryPiOS預裝了Python需要使用其虛擬環境來安裝包。今天出版的最新一期《TheMagPi》雜志刊登了我們文檔負責人NateContino撰寫的一篇實用教程,幫助你入門
    的頭像 發表于 03-25 09:34 ?331次閱讀
    ?如何在虛擬環境中使用 <b class='flag-5'>Python</b>,提升<b class='flag-5'>你</b>的開發體驗~

    如何python文件導入到ROS系統中

    本文通過使用myCobot機械臂進行QR碼視覺追蹤的實踐案例分析,介紹如何 python 文件導入到 ROS 系統中。
    的頭像 發表于 02-11 11:08 ?799次閱讀
    如何<b class='flag-5'>將</b><b class='flag-5'>python</b>文件導入到ROS系統中

    使用Python實現xgboost教程

    使用Python實現XGBoost模型通常涉及以下幾個步驟:數據準備、模型訓練、模型評估和模型預測。以下是一個詳細的教程,指導如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發表于 01-19 11:21 ?1364次閱讀

    NE555制作點焊機

    NE555制作點焊機,電路簡單,容易制作。需要一個12v的鉛酸蓄電池。實際焊接效果很好。
    發表于 11-08 15:05 ?31次下載

    谷景告訴插件功率電感壞了可以什么替代

    谷景告訴插件功率電感壞了可以什么替代 編輯:谷景電子 當插件功率電感損壞時,我們能否其他類型的電感來替代?這是一個非常實用的問題,且很多人一直在問。尤其是在電子設備維修和設計領域
    的頭像 發表于 09-22 20:27 ?632次閱讀

    單片機STM32可以Python寫嗎?可以的開發板有哪些?

    近年來,隨著嵌入式技術的發展,Python語言逐漸被引入到單片機開發中,尤其是一些高性能的單片機上。這一趨勢給開發者帶來了極大的便利,尤其是在快速原型設計和實驗中。本文詳細探討STM32單片機是否
    的頭像 發表于 09-05 08:00 ?7567次閱讀
    單片機STM32可以<b class='flag-5'>用</b><b class='flag-5'>Python</b>寫嗎?可以的開發板有哪些?

    怎樣用THS3201實現輸出功率可調?

    怎樣用THS3201實現輸出功率可調?
    發表于 08-26 08:28

    利用Python腳本登錄到交換機并創建VLAN

    本文詳細介紹如何利用Python腳本登錄到交換機并創建VLAN。
    的頭像 發表于 08-12 17:59 ?948次閱讀

    OPA735加OPA333,怎樣用TINA TI去仿真?

    當輸入信號VG1從7.06V慢慢變化到7.22V時。 輸出電壓Vout的變化必須是接近線性變化的。我想知道我該怎樣用TINA TI去仿真?怎樣設置那個輸入信號VG1才能達到我的目的。因為這個電壓源好像
    發表于 08-02 08:39

    pytorch和python的關系是什么

    ,PyTorch已經成為了一個非常受歡迎的框架。本文介紹PyTorch和Python之間的關系,以及它們在深度學習領域的應用。 Python簡介
    的頭像 發表于 08-01 15:27 ?3266次閱讀

    怎樣用表測穩壓管穩壓值

    表是一種常用的電子測量工具,可以用來測量電壓、電流、電阻等多種參數。在測量穩壓管的穩壓值時,我們可以使用萬表的直流電壓測量功能。以下是步驟和注意事項: 準備工具和材料 萬表 穩壓管 電源
    的頭像 發表于 07-31 14:26 ?3110次閱讀

    怎樣用Arduino測試鋰電池容量

    本文詳細介紹了如何用Arduino測量鋰電池的容量。并附有電路圖和Arduino的程序代碼。
    的頭像 發表于 07-30 09:14 ?1653次閱讀
    <b class='flag-5'>怎樣用</b>Arduino測試鋰電池容量

    Python建模算法與應用

    上成為理想的腳本語言,特別適用于快速的應用程序開發。本文詳細介紹Python在建模算法中的應用,包括常見的建模算法、Python在建模中的優勢、常用庫以及實際案例。
    的頭像 發表于 07-24 10:41 ?1246次閱讀

    python寫驗證環境cocotb

    本文介紹了cocotb的安裝、python tb文件的寫法、xrun仿真cocotb的腳本等,我們來看看體驗如何。
    的頭像 發表于 07-24 09:38 ?1045次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>python</b>寫驗證環境cocotb

    如何實現Python復制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,將會看到一些 Python 實現文件復制的特殊
    的頭像 發表于 07-18 14:53 ?793次閱讀
    主站蜘蛛池模板: 欧美成人3d动漫在线播放网站 | 久久九九色 | 久久天天躁夜夜躁狠狠 | 人人草在线 | 久久艹综合 | 在线免费观看视频你懂的 | 资源视频在线观看 | 老逼影院| 国产高清a | 天堂资源最新版在线www | 亚洲一区二区免费在线观看 | 午夜精品视频在线观看 | se97se成人亚洲网站在线观看 | 国产精品免费久久 | 在线网站 看片 网站 | 国产精品三级国语在线看 | 日美一级毛片 | 色婷婷综合和线在线 | 欧美一级黄色录相 | 国模欢欢炮交啪啪150 | 亚洲免费视频在线观看 | 一级毛片免费在线观看网站 | 欧美黑人性xxx猛交 欧美黑人性受xxxx精品 | 1024人成网色www | 亚洲精品中文字幕乱码三区一二 | 免费视频不卡一区二区三区 | 啪啪免费网站视频观看 | 亚洲成年人在线 | 五月天色网址 | 手机在线播放视频 | 人人看人人看人做人人模 | 老色批视频 | 中国成人免费视频 | 亚色在线观看 | 黄色精品视频 | 亚洲视频www| 免费在线色| 国产特黄特色的大片观看免费视频 | 狠狠色噜噜狠狠狠狠米奇7777 | 精品午夜久久福利大片免费 | 天堂在线.www资源在线观看 |