A program for playing Fantasy Flight Games' The Lord of the Rings: The Card Game.
OGC Gains Comfort
珍愛生命 遠離編程
2012年2月24日
2011年1月30日
2011年1月5日
OpenCV face detection with Alcapas
OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision.我沒背景知識,只會摳摳 API =.=
HaarDetectObjects 可以偵測物體,丟 haarcascade_frontalface_default.xml 進去就是偵測臉部。
藍框標出程式有反應的區域。
2011年1月4日
PyQt + PyBox2D is easy!
Box2D 是一個開源的 C++ 2D 剛體物理引擎,包括了連續碰撞偵測、支點限制、摩擦力、齒輪等功能,可以模擬物體互動...... 的數值。它的核心本身不管畫面渲染,所以只會更新物體們的狀態;欲呈現出來,請自行調用任意繪圖函式庫,抓物件狀態數值出來畫......
所以那篇文章就用 Qt 繪圖框架結合 Box2D,弄了個漂亮的彩色小三角形下落模擬。由於我個人一看到 C++ 語法就開始覺得陣陣髮指兼蛋疼,所以把原文給的程式碼用 Python 改寫了。結果在這裡 ( 備份 )。
測試通過的環境:
ArchLinux | |
Python | 2.7.1 |
Box2D | 2.1.2 |
PyBox2D | svn |
PyQt | 4.8.2 |
描述一下寫簡單 Box2D 2.0 程式的觀念,希望沒有錯誤:
- 物體由 b2Body 儲存其位置、線性速度、角度、角速度、阻尼等數值。
- 另由 b2PolygonShape / b2CircleShape 儲存實際碰撞面積、密度、摩擦力等數值。
- Body 可和 ( 多個 ) Shape 綁在一起,例如搞成個啞鈴,這樣它就又有物理狀態又能碰撞了,可以和其它物體們互動啦~
- 一組一組地綁好之後用 b2World.CreateBody(b2BodyDef) 塞進世界中。這個函式用來簡化記憶體管理:讓 b2World 接手物體,在它該升仙的時候能自動拖子孫十八代下水。Python 自己有垃圾車到處開,不過對於沒有 Garbage Collector 的 C++ 框架來說,記憶體管理需要額外關注......
- 每次呼叫 b2World.Step(timeStep, velocityIterations, positionIterations) 時讓整個世界往前模擬一小步。後兩個玩意兒影響模擬精度,官方建議一般場合直接塞 10 和 8。
- 要具體呈現的話,就是在每次呼叫 Step(timeStep, 10, 8) 後讓繪圖函式重抓物件數值,更新畫面位置囉......。QGraphicsItem 之類東東的 API 還請自行查閱 Qt 文檔 =3=a
- Box2D 2.1 引進了 fixture 這玩意兒。Python binding 目前還沒更新,所以我不太瞭解是啥回事...... 貌似讓 Shape 單獨管理碰撞範圍了吧。
就這樣,更多的範例程式可以看 PyBox2D 的 testbed。
Makefile 什麼的最討厭了 (>ω<)♪♪
2009年10月27日
ArchLinux + LXDE 安裝筆記 ( 2009.08 )
去年有寫過一篇相同主題的。過時瞭,所以再生篇新的。
什麼樣的人適合用 Linux 呢?我覺得這個問題還挺重要的。畢竟意志不夠堅強、人品又剛好低落的話,很容易會被 Linux 折騰個火冒三丈。
參考答案:有工作 or 學習上的需求,或者信念使然。
以上皆非卻又想摸摸 Linux 世界的話,等後天出的 Ubuntu 9.10 吧!那發行版的社群龐大無比,遇到問題隨便股溝隨便有解,穩穩坐定最適合入門者的第一把交椅。
至於 ArchLinux,比較適合已經對 Linux 有些基本瞭解的人用。特色是可以從基礎系統打造,量身訂做整個使用環境,並且有 AUR 這樣的龐大套件源可供使用。Rolling update 的升級方式可保持套件嶄新程度,適合網路環境不錯的用戶。ArchWiki 是個強大的寶箱,實用性高,遇到問題都可以去查查。若對這些沒有特色都沒有興趣的話,其它發行版可能會比較適合。
確定要灌 ArchLinux 了,那麼我們繼續下去吧......
ArchLinux 下編寫 LaTeX 文檔
關於 TeX,CTAN 和 大家來學 LaTeX 有很詳細的介紹。簡單講,強大的排版工具 ( 語言?),尤其是在數學式子的排版上,因此廣泛用於數學、資訊科學、物理書籍的編排。
古老 TeX 的主要變種有較現代化、易用的 LaTeX 和 Unicode 支援較完善的 XeTeX。使用 LaTeX 排版的知名書籍滿地都是,包括《The Pragmatic Programmer》、《C++ Primer 4/e》、《Introduction to Algorithms》等,族激繁,不及備載。
想搞個 TeX 編寫環境的話,Windows 下可以用 MikTex,Linux 下可以用 TeX Live:
# pacman -S poppler texlive-bin texlive-most texlive-langcjk
包頗大 ( 700 MB!! ),灌起來久到有點髮指,忍著點。
另有 TeXworks 這個 Qt4 寫成的圖形介面,幫助編寫和輸出:
# yaourt -S texworks-svn
目前為止個人感覺寫起來有點像 HTML + CSS。雖然要另外花費時間學習,但是排起版來效果也是相當好的。有機會的話可以嘗試看看~
2009年4月23日
[PyQt 教學] Part 7: 聚砂成塔
一路走來,盡係寫些拉雞程式。沒關係,打好基礎後就可以準備擺脫這坨窩囊鳥氣啦 =3=
這次寫個線上字典查閱程式。是的,它會跑去讀取 Yahoo! 奇摩字典 並顯示查詢的單字結果...... 用一種異常偷吃步的方法 =.=
( code )