這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。發佈於 2018-03-21 星期三這次的迭代有一些激動人心的改變。 特別是我用 Go 重寫的整個程式。實際上我在這塊沒有花太多時間。這樣帶來的結果就是程式有點亂,雖然如此,我還是花幾分鐘來介紹下。首先,我來講講紋章的改變。在最進一次迭代中只用 fess 和 pale (譯者註:紋章學中的專業術語,標識徽章上面的豎線和橫線圖案,[詳看維基](https://en.wikipedia.org/wiki/Pale_(heraldry))) 兩部分,之後我添加了一些其餘的基本元素:bend,bend sinister(專業術語,[維基解釋](https://en.wikipedia.org/wiki/Bend_(heraldry))),saltire(叉叉 [維基解釋](https://en.wikipedia.org/wiki/Saltire)) ,和 chevron([維基解釋](https://en.wikipedia.org/wiki/Chevron_(insignia)))我還添加了最基本的元素 —— 這些幾何圖形叫做“Ordinary”(專業名詞 [維基解釋](https://en.wikipedia.org/wiki/Ordinary_(heraldry)))。並不是所有的普通 “Ordinary” 都包含在內,而且它看起來有點歪。因為我是手動建立並嘗試錯誤修正,並沒有進行準確的計算, 所以這還有很多問題需要我去解決。例如,這裡有一對圖案來自當前的迭代程式。注意他們是否有點不對勁?![image](https://raw.githubusercontent.com/studygolang/gctt-images/master/heraldry-generation/01.jpg)另一個問題是很多產生出來的設計視覺上的效果不是很好。將來很有可能進行一個迭代來改善這個問題。說了這麼多,它也產生了相當不多的效果。這是一些例子:![image](https://raw.githubusercontent.com/studygolang/gctt-images/master/heraldry-generation/02.jpg)好了,現在讓我們來聊一聊 Go。我一直想把這個程式用 Go 重寫;我使用了 PHP 這種快速成型的語言。然而,我遇到了阻礙,開發上沒有更多的進展。我使用的 SVG 庫不支援我需要的特性。我可以拆封那個庫,處理原始 SVG 的 XML,但這樣有些麻煩了。然後我發現了一個優秀的 SVG Go 包,功能豐富,叫做 SVGo。它有幾個我需要的功能。然後,我僅僅做了下簡單改動,花了一個早上的時間來重寫整個代碼。帶來的結果就是程式更快且更容易編寫;不過這並不是說就沒有問題了。所有的代碼都在一個大檔案中。可視化的內嵌元素通過大塊的 `switch` 或 `if` 來控制。沒有單元測試(已經坑了我好幾次了)。現在 我將要添加更多複雜的符號(像動物的那種),我不能把所有的東西都放到一個檔案中。我希望在下個迭代版本中去解決這個問題。
via: https://www.benovermyer.com/post/heraldry-pt-2/
作者:Ben Overmyer 譯者:zhucheer 校對:rxcai
本文由 GCTT 原創編譯,Go語言中文網 榮譽推出
本文由 GCTT 原創翻譯,Go語言中文網 首發。也想加入譯者行列,為開源做一些自己的貢獻嗎?歡迎加入 GCTT!
翻譯工作和譯文發表僅用於學習和交流目的,翻譯工作遵照 CC-BY-NC-SA 協議規定,如果我們的工作有侵犯到您的權益,請及時聯絡我們。
歡迎遵照 CC-BY-NC-SA 協議規定 轉載,敬請在本文中標註並保留原文/譯文連結和作者/譯者等資訊。
文章僅代表作者的知識和看法,如有不同觀點,請樓下排隊吐槽
223 次點擊