3D 相機、互動與立體匯出
3D 畫布使用透視相機與 WebGL 渲染,但相機的移動不會改變世界座標。環繞、縮放與重置視圖只會改變觀看方式,不會更動 Eidolang 物件。
相機控制
- 拖曳空白畫布:環繞目前的目標點旋轉。
- 滾輪或雙指捏合:以指標附近為中心縮放。
- 點擊角落的方向軸:顯示重置視圖按鈕;執行後會回到原點目標與初始距離。
- 內嵌的小視窗會顯示世界座標的 x/y/z 軸,其中 z 軸朝上。
切換圖形時,相機位置與目標會以本機視圖狀態保留,重新掛載時會恢復,但不會寫入 .eido。縮放距離會受目前專案的 3D 最小/最大距離限制。
選取與拖曳 3D 點
在指標工具下,點擊物件即可選取。拾取的優先順序是先點、再線性物件、最後才是曲面/實體,因此半透明球體內部的點仍然可以被選取。
- 自由的
point3在面向相機的平面上拖曳; - 綁定點沿著 segment3/line3/ray3 移動;
- 綁定在球面上的點沿球面移動;
- 派生點無法直接拖曳。
啟用自動吸附後,自由點靠近既有點座標時會吸附過去,或改為綁定到附近的線性承載物件或球面。候選目標會在放開前先反白顯示。
3D 繪圖工具
Point3 會在世界座標 z = 0 平面上放置點;按下後垂直拖曳,即可建立非零的 z 座標。Segment3、Sphere、Cylinder、Cone 等工具會根據既有或新建的控制點進行構造,並顯示虛線或線框預覽。
平面、盒體、稜柱、稜錐,以及更複雜的曲線/曲面,通常需要在 Eidolang 中建立。可以從一個 3D 範例開始修改。
自適應格線與尺寸
格線間距會依相機距離,以 1-2-5 的階梯調整,角落圖例會顯示目前的單位。無限長的直線與平面會隨視距擴展。點、交點標記與標籤會維持近似固定的螢幕尺寸,方便可靠地選取。
3D PNG
PNG 讀取的是 WebGL 渲染結果:
- 目前視角會保留現有構圖;
- 符合內容會保留觀看方向,但會暫時置中並拉遠相機,以容納整個模型;
- 提供 1×/2×/4× 像素倍率;
- 可以排除地面格線與方向指示小視窗;
- 3D 一律會渲染背景,不支援透明背景。
3D SVG
3D SVG 並不是畫布截圖。Eidograph 會依據目前已求值的模型與相機,重新產生線框/輪廓投影:線與曲線會轉換為投影後的折線,實體會輸出邊線與解析輪廓,曲面則會輸出等參數格線,並帶有半透明填色。
目前尚未支援隱藏線消除。深度排序僅為近似值,複雜的重疊情況可能與實體 WebGL 畫面不同。SVG 適合用於示意圖與向量排版,而非工程製圖投影。
3D GIF 與 MP4
GIF 與 MP4 可以使用腳本中的 animate/stage 時間軸,也可以採用自動相機環繞。符合內容會建立一個臨時的匯出用相機,不會更動已儲存的互動相機。兩種格式渲染同樣的影格;相同環繞時長下 MP4 的檔案明顯更小。若渲染過大或過慢,可降低影格率、像素倍率、時長或曲面取樣數。
