不知道為何寫起matters上來。
自製「參數化巨集」畫圖軟體 vim-like image editor v0.1
我曾說過「其實每次看人用電腦畫圖或製作3D之類,就覺得很不電腦,每次人手大量重複。」。如果能將在繪圖時的動作記錄下來,重複呼叫使用,並能以參數修改控制點、長闊、顏色之類,作出各種微調以配合需要,這樣就能像寫電腦程式那樣 Don't Repeat Yourself 。甚至可以透過使用別人提供的「參數化巨集」,就算自己不太會畫圖,也能組裝出美麗的圖。
想著想著,這不就像使用於文字的 vim 嗎?用 Google 找找,沒有 vim-like image editor , vim-like painting 也沒有(不對,找到ViPaint,不過看介紹頁似乎沒有完整繪圖功能,離DRY似乎也有差異)。
因此,我打算自己寫一個。
(會想到vim,而不是一般繪圖或修圖軟體,也不是一般程式繪圖,是因為不但「你下達的指令就是你的原始碼」而且即時互動,軟體操作和程式撰寫兩者合一。)
雖然十劃未有一撇,但做了很微量部份的雛型,離自己所想的還有段距離,繪圖方面連方形、距形、弧線、貝茲等等全部未有,vim方面未有bookmark、cmdline、mapping等等。除,很多方面也未做好或未最終決定,例如各種功能也未最終決定用甚麼按鍵。
雛型是給各位可以玩玩,給人知道這構想是甚麼。
連結: https://codepen.io/lunzenoopen/full/mdBawrv
先用滑鼠按白色地方取得輸入焦點,然後用鍵盤按 gcqafklq359@a
左下角方括號內的是X座標和Y座熛,跟著右方括號外的數字是角度,12點鐘方向是0度,順時針360度是一圈,左上角是座標 [0,0] ,向右和向下是正數。
gc 即是去正中央, gc for go to center 。
qa 是用暫存器 a 開始錄製巨集。
f 是畫線 operator 。
k 是向上 motion 。
j 是向下 motion 。
h 是逆時針轉。
l 是順時針轉。
q 是停止並完成錄製巨集。
@a 是執行在暫存器 a 的巨集。
359@a 是執行在暫存器 a 的巨集 359 次。
gcqafklq359@a 使用了 LOGO 圖龜的畫圓法。依序按按鍵執行後應見到一個圓圈。
喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。
发布评论…