多重基元的高效表示

Point[{pt1,pt2,...}]由点 ... 组成的复点
Line[{line1,line2,...}]由线 ... 组成的复线
Polygon[{poly1,poly2,...}]由多边形... 组成的复多边形

可取多重元素的基元.

一些基元存在复元素形式,与相同情况下分立的基元相比,能被 Mathematica 的前端更快速地处理和绘制图形. 对于大数量的基元, 使用复元素形式还能够显著减小笔记本文件的大小. 和不使用复元素形式相比,使用复元素形式的笔记本可以达到前者尺寸的一半或更小,而其绘图速度能达到前者的十倍.

这是一个复点的随机分布.
In[1]:=
Click for copyable input
Out[1]=
GraphicsComplex[{pt1,pt2,...},data]复合图形,在 data 中的图形基元的整数坐标 i 被视为

基元中共享坐标数据的基元.

当多个基元共享同一坐标数据时,例如在网格或图形中, 使用 GraphicsComplex 可去除重复坐标数据而使效率进一步提高. Mathematica 的曲面和图形绘制函数通常采用这种表示形式.

这是共用坐标的点和线的结构.
In[2]:=
Click for copyable input
Out[2]=

GraphicsComplex 不仅可以提高效率,而且在与用户交互方面也很有用. 拥有共用坐标的基元,在其中一个被拖动时始终保持连在一起.

由于GraphPlot 的输出是 GraphicsComplex, 图形的任何一部分被拖动时, 图形始终保持连接 .
In[3]:=
Click for copyable input
Out[3]=

任何基元都可以在 GraphicsComplex 内使用,而 GraphicsComplex 可以用于 2D 或 3D 图形. 在GraphicsComplex 内,基元的坐标位置被 GraphicsComplex 中坐标数据的指标所取代.

这个 GraphicsComplex 复合了多种形式的基元.
In[4]:=
Click for copyable input
Out[4]=

GraphicsComplex 在表示多边形网格时尤其有用. 使用 GraphicsComplex,能够避免出现由数值误差所造成的相邻多边形之间的间隙.

Plot3D 的输出是 GraphicsComplex.
In[5]:=
Click for copyable input
Out[5]=
New to Mathematica? Find your learning path »
Have a question? Ask support »