在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美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

    文章

    4801

    瀏覽量

    84861
  • GIF
    GIF
    +關注

    關注

    0

    文章

    24

    瀏覽量

    6599

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

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

收藏 人收藏

    評論

    相關推薦

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

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

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

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

    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 ?2124次閱讀

    怎樣用Arduino測試鋰電池容量

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

    python寫驗證環境cocotb

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

    如何實現Python復制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,將會看到一些 Python 實現文件復制的特殊
    的頭像 發表于 07-18 14:53 ?448次閱讀

    pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發環境
    的頭像 發表于 07-11 10:11 ?906次閱讀

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測量脈寬?

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測量脈寬?
    發表于 05-07 06:55

    stm32f100怎樣用重映射功能?

    的是stm32f100c8t6b芯片,現在想用PB1映射為TIM1_CH3N,在調用GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM1)時, GPIO_PinAFConfig和GPIO_AF_TIM1都沒定義,st
    發表于 05-07 06:06

    STM32F412G-DISCO怎樣用MX生成fatfs的代碼?

    STM32F412G-DISCO怎樣用MX生成fatfs的代碼? SD卡例程能跑,但mx生成的代碼不能正常運行,我生成代碼后是不是還要配置一些東西?(我生成后只寫了測試代碼) 問題解決了,雖然我不知道我為什么不能直接使用mx生成的代碼去操作sd卡,但我通過復制粘貼例程的代碼完成了測試。
    發表于 03-12 08:15

    500字告訴學會焊PCB板有什么

    的組件,以修復問題。這可以節省維修費用,延長設備的使用壽命。 2.制作原型和實驗電路:焊接技能使能夠制作原型電路板和進行各種實驗。可以設計和布局自己的電路,并將電子元件焊接到PCB
    的頭像 發表于 03-04 14:10 ?664次閱讀

    基于Python的地圖繪制教程

    本文介紹通過Python繪制地形圖的方法,所需第三方Python相關模塊包括 rasterio、geopandas、cartopy 等,可通過 pip 等方式安裝。
    的頭像 發表于 02-26 09:53 ?1272次閱讀
    基于<b class='flag-5'>Python</b>的地圖繪制教程

    通過Python腳本實現WIFI密碼的自動猜解

    本文記錄學習下如何通過 Python 腳本實現 WIFI 密碼的自動猜解。
    的頭像 發表于 01-25 10:46 ?3548次閱讀
    通過<b class='flag-5'>Python</b>腳本實現WIFI密碼的自動猜解

    如何使用NVTFAT顯示GIF

    如何使用NVTFAT顯示GIF
    發表于 01-18 06:48
    主站蜘蛛池模板: 夜夜爽影院| 亚洲综合色站| 四虎影视国产精品| 亚洲一区二区三区精品视频| 全部免费特黄特色大片视频 | 你懂得国产| 日本www黄| 夜色资源站www国产在线观看| 综合色吧| 久久久国产在线| 好骚综合在线| 高颜值露脸极品在线播放| 天天天干干干| 在线天堂在线| 国产成人a| 激情综合在线观看| 农村苗族一级特黄a大片| 色视频免费国产观看| 亚洲电影在线播放| 真实国产伦子系| aa三级动态图无遮无挡| 一级大片视频| avtt亚洲一区中文字幕| 四虎在线精品免费高清在线| 亚洲性久久久影院| 天堂网a| 性久久久久久久久| 免费看色视频| 日本在线视频一区二区三区| 深夜网站在线| 2017天天天天做夜夜夜做| 国产日日夜夜| 88av视频在线观看| 亚洲激情四射| 巨骚综合网| 真人午夜a一级毛片| 正在播放亚洲一区| 亚洲欧美色鬼久久综合| 五月激情站| 色偷偷88欧美精品久久久| 色丁香六月|