LungZeno
LungZeno

不知道為何寫起matters上來。

自製「參數化巨集」畫圖軟體 vim-like image editor v0.1

我曾說過「其實每次看人用電腦畫圖或製作3D之類,就覺得很不電腦,每次人手大量重複。」。如果能將在繪圖時的動作記錄下來,重複呼叫使用,並能以參數修改控制點、長闊、顏色之類,作出各種微調以配合需要,這樣就能像寫電腦程式那樣 Don't Repeat Yourself 。甚至可以透過使用別人提供的「參數化巨集」,就算自己不太會畫圖,也能組裝出美麗的圖。

我曾說過「其實每次看人用電腦畫圖或製作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 圖龜的畫圓法。依序按按鍵執行後應見到一個圓圈。

結果圖


NO RIGHTS RESERVED 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…
加载中…

发布评论