| 物理引擎 | 物理模擬 | 程式學習 | 林信良 | 遊戲開發

聊聊自造物理引擎

如果你曾經想自造物理引擎,卻不得其門而入,可以試著從尤拉法、牛頓第二運動定律、AABB碰撞偵測與SAT分離軸理論等開始,從中認識程式面實作上的考量,以及各種方法的優缺點

2020-09-24

| 遞迴 | 林信良 | 希爾伯特曲線 | Hilbert curve | 碎形圖案 | 程式學習

漫談希爾伯特曲線

在程式設計的過程當中,若要學會遞迴處理的實作,我們可由碎形圖案的繪製來熟悉,而希爾伯特曲線正是常見的圖案,讓我們來用這樣的曲線來畫一條龍吧!

2020-08-20

| API文件 | 程式學習 | 原始碼 | 抽象滲漏 | 林信良

另眼看抽象滲漏

掌握軟體開發技術,我們有時需閱讀API文件,若無法確切理解,還是要從原始碼一探究竟,但這能說是抽象滲透?實際上,開發者本身就有掌握底層的需求,因此有其必要

2020-07-30

| UI框架 | Flutter | RenderObject | render tree | 渲染樹 | 程式人 | 林信良 | 程式學習

淺談Flutter渲染樹

採用UI框架Flutter時,如果我們想要自行調整元件,不只是需要了解Widget樹與Element樹,還需要知道由負責繪圖的RenderObject組成的渲染樹

2020-07-23

| 碎形 | l-system | 程式學習 | 林信良 | 海龜繪圖

碎形與L-system

關於碎形的生成,我們可以用起始元與生成元來描繪,不過,若要讓這樣的處理過程能夠通用,我們可以採用一種名為L-system的符號描述方式,來制定正式文法

2020-05-28

| Perlin噪聲 | 弦波 | 噪聲 | 碎形布朗運動 | Worley噪聲 | 碎形噪聲 | 程式學習 | 林信良

自然噪聲與碎形

在程式世界模擬真實世界的場景時,我們可以運用Perlin噪聲來實現連續性與隨機性,並搭配疊加的作法,而從中延伸出碎形的處理方式,如此一來,能夠增進解決問題的思考面向

2020-05-21

| 知識體系 | 演算法 | 程式人 | 林信良 | 程式學習

構建專屬知識體系

每個人需要的知識各不相同,我們可以透過學習或處理事情的經驗,來獲取既有的知識體系,不過,面對各式問題,我們可能需要拼湊種種已知的解法,甚至需要自行建構知識體系

2020-05-14

| 模組化 | Java 9 | 程式學習 | 程式人 | 林信良

模組化是一級公民

設計模組看似與設計函式、類別相像,但主要是以系統的整體關係來思考、規畫,而不只是將一堆套件組合起來、透過API相互取用,僅考量到物件等技術層面的元素

2020-05-07

| 程式人 | 林信良 | 隨機函式 | 隨機 | 隨機演算法 | 程式學習

隨機演算之美

在演算中,我們可以運用隨機性來增加變化,然而,這樣看似無法預測的狀況,並不代表彼此無關聯性,而為了能夠產生更妥善的隨機現象,我們仍然可以持續尋找當中的規律,以便獲得許多的啟發

2020-04-23

| 程式學習 | 程式人 | 林信良 | 巨集 | foreach | 前置處理器指令 | preprocessor directive | C語言

巨集與語法糖

我們可以運用巨集,來消除重複,也就是透過前置處理器指令去定義文字替換的規則,產生另一組程式碼,甚至還能創造語言本身沒有的語法,就像自定語言的語法糖!

2020-04-09

| 剖析器 | 剖析樹 | LL | LR | 程式學習 | 林信良 | 程式人

LL/LR不神祕

對於文字剖析處理,也是設計語言時,會接觸到的工作,因為描述文字結構的方式就是語言的文法,而在實現剖析器之際,就已在設計文法。不過,為何還有LL剖析器與LR剖析器之別?

2020-04-02

| 程式人 | 林信良 | 規則表示式 | 文法 | 程式學習

語言文法淺淺談

想要撰寫程式碼,我們可以試著自行構造語言,要如何著手呢?關鍵在於文法的設計,事實上,如果在程式開發過程中,我們曾訂定數學公式與規則表示式的經驗,就已經涉及語言的定義

2020-03-19