背景
在lightburn中,對于填充圖層,有這樣一個隱藏的邏輯,那就是,在加工時,填充規則是以填充圖層的所有元素進行計算的,什么意思那?
如果你在填充圖層中畫了兩個圖形,一個圓,一個矩形,如果這兩個圖形不相交,也不存在任何包含關系,那么你在加工后,你會得到一個填充的矩形和一個填充的圓。
如下圖:
假如現在移動圓形,使其與矩形相交或者包含,那么你最后的結果就不是一個矩形一個圓了。
而是下面的效果
重疊部分部分會被鏤空。這個規則 是以圖層的所有元素進行 奇偶規則 (evenodd)的運算。而且是默認的,對于其他的軟件,要實現這種效果,需要將元素進行組合后才能實現。在用戶的不斷要求下,前一段時間,我也終于給TS加上了這個功能。
下面簡單說一下技術方案,在分析填充的雕刻圖層時,需要將該圖層的所有元素組裝起來,這里的組裝我使用的復合路徑,也就是SVG中的Path標簽,也就是將圖層中所有圖元轉換為一個Path路徑。并對這個路徑進行奇偶填充線。最后就能使用很簡單的操作得到非常復雜的鏤空作品。
需要注意的是,由于將所有圖元組合起來,會改變個體的屬性,所以我們需要單獨創建一個對象,并在完成填充線,生成gcode后,將臨時元素刪除。如果計算的元素非常多的話,有時會比較卡。
之前的一個比較復雜的作品
擁有883個子路徑,生成的gcode 6.14 M
隨著應用功能的不斷增多,框架,代碼組織,模式設計,現在變得尤為重要。功能能做出來還不行,還要保證良好的性能表現。當所有的按鈕, 功能都向用戶開放時,狀態的維護,邊界,交互的中間狀態會變得非常難以維護。項目越往后走,越是越是泥濘。
當你感到 力不從心時,可以去看看一些優秀的開源項目,一些框架,庫的源碼,他山之石,可以攻玉。
最近令人高興的是,我的教資面試通過了,嘻嘻…真是做夢都能讓人笑醒,考試前真的沒有演練,全靠臨場發揮,而且面試時做的很差勁。我都打算下半年繼續考了,結果面試竟然通過了,想起來我就感覺自己真是太幸運了,我真是要謝謝面試老師,放我一馬。面試后還要做個普通話測試,考個二甲,然后體檢,就能等著拿教師資格證啦。
最近在盤算著下半年的目標,是要健身還是練字,下一個目標是拿什么證書?