绘图组件概览
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常用线性对象包括 segment、line、ray、vector、平行线和垂线。点既可以自由放置,也可以绑定在线段、圆、曲线等路径上。
圆、圆弧、椭圆与多边形
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"这些对象都是可继续引用的构造结果。圆、椭圆、多边形可以转为区域并参与并集、交集和差集;不同路径可以求交点。
函数图形与动态组件
plot、curve、polar、equation 和 locus 会生成路径。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 开始。基础对象包括 point3、segment3、vector3、平面、球、圆,以及盒体、棱柱、棱锥、圆柱和圆锥;还可使用空间曲线、轨迹、坐标架和函数曲面。
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 读取。
