Skip to content

繪圖元件概覽

Eidograph 中的「元件」指的是 Eidolang 構造物件。物件之間透過名稱互相參照,修改上游物件後,所有派生物件都會依照相依關係圖重新計算。

自由、綁定與派生

每個物件都屬於一種自由度層級:

層級範例互動方式
自由(橙色)point A 0 0可直接拖曳;座標會寫回腳本
綁定(紫色)point P on c at 0.25只能沿其承載物件拖曳;參數會寫回
派生(灰色)point M = midpoint(A, B)無法拖曳,需改變其輸入物件

這項規則在 2D 與 3D 中都一致,也是「為什麼這個點不能拖動」的第一個檢查點。

平面元件

點與線性物件

txt
space plane
point A -3 -1
point B 3 -1
segment base A B
point M = base.mid
perpendicular p M base

常見的線性物件包括 segmentlinerayvector,以及平行線與垂直線。點可以是自由的,也可以綁定在線段、圓、曲線或其他路徑上。

圓、圓弧、橢圓與多邊形

txt
circle c M through A
point P on c at 45deg
arc a A P B
polygon tri A P B
label P text "P"

每個結果都是可供後續指令參照的第一級物件。圓、橢圓與多邊形可以轉為區域,參與聯集、交集與差集運算;任何路徑之間也都可以求交點。

函式與動態變化

plotcurvepolarequationlocus 都會產生路徑。param 提供可調整的數值,animate 讓參數或綁定物件隨時間變化,stage 則將構造組織成循序演示。

txt
param r 2 range 0.5 4
circle c M radius r
animate r duration 2s mode alternate

立體元件

3D 圖形以 space solid 開頭。基本物件包括 point3segment3vector3、平面、球、圓,以及盒體、稜柱、稜錐、圓柱與圓錐,此外還有空間曲線、軌跡、座標架與函式曲面。

txt
space solid
point3 O 0 0 0
point3 T 0 0 3
sphere s O radius 2
cylinder body O T radius 1

使用指標工具可以環繞相機旋轉。選取的物件仍會在物件面板中顯示類型、狀態與可編輯屬性。3D SVG 是依目前視角重新產生的線框/輪廓投影,而不是 WebGL 畫布的截圖。

樣式、標籤與群組

style 控制顏色、線寬、不透明度、填色與 2D 虛線樣式。label 可加上文字,或完整以 $$…$$ 包住的 LaTeX 公式。textbox 可在 2D 畫布上放置可換行的文字內容。group 可讓多個物件共用隱藏、顯示與樣式操作。

屬性彈出視窗是編輯這些指令的視覺化入口。無論是在彈出視窗還是原始碼編輯器中修改,結果都是一般的文字編輯,可以復原,也能被 Agent 讀取。