图形结构
"图形和声音" 讨论了如何用 Plot 和 ListPlot 等函数绘制函数和数据的图形. 本节讨论 Mathematica 如何表示这些图形, 如何编程去生成更复杂的图形.
基本思想是 Mathematica 用图形基元的集合表示所有图形. 图形基元包括代表图像基本元素的 Point (点), Line (线) 和 Polygon (多边形), 以及 RGBColor 和 Thickness 等指令.
| Out[1]= |  |
InputForm 告诉
Mathematica 如何表示图形. 每个点被表示为一个
Point 图形基元的坐标形式. 本例中使用的所有图形选项也被给出.
Out[2]//InputForm= |
| |  |
在 Mathematica 中, 每个完整的图形块都用图形对象表示. 图形对象的种类很多, 分别对应于不同类型的图形. 每类图形对象都有确定的头部以表明它的类型.
Mathematica 的图形对象.
Plot 和 ListPlot 等在 "图形和声音的结构" 中讨论的函数都是按照先建立 Mathematica 内部图形对象, 然后显示它们的顺序工作的.
在 Mathematica 中, 用户可以自行建立图形对象产生其它类型的图像. 由于在 Mathematica 中的图形对象是符号表达式, 所以能用所有的 Mathematica 标准函数对其进行操作.
图形对象在输出时被 Mathematica 前端自动格式化成图形形式. 图形也可以用 Print 命令以副产品形式输出.
对象
Graphics 被
Mathematica 计算, 但分号阻止了它的输出.
| Out[3]= |  |
可以使用
Print 命令以副产品形式输出图形 . 副产品形式的图形在输出时没有标签
Out[].
| Out[4]= |  |
| Show[g, opts] | 显示由新的选项 opts 指定的一个图形对象 |
| Show[g1,g2,...] | 显示由选项 等指定的多个图形对象的组合 |
| Show[g1,g2,...,opts] | 显示由新的选项 opts 指定的多个图形对象 |
显示图形对象.
Show 可用于改变已生成图形的选项, 也可用于合并多幅图形.
| Out[5]= |  |
| Out[6]= |  |
| Out[7]= |  |
修改图形的局部和全局方式.
给定一个图形基元列表后, Mathematica 提供了两种方式去修改最终的图形. 首先, 可以在图形基元列表中插入一些图形指令, 例如 RGBColor, 以修改随后列表中的图形基元. 用这种方式, 用户可以指定如何修改一个给定的图形基元列表.
| Out[8]= |  |
Out[9]//InputForm= |
| |  |
| Out[10]= |  |
通过插入图形指令, 可以指定图形基元的显示方式. 然而, 用户往往经常会希望通过全局修改来改变整个图形的显示. 使用图形选项可以达到这一目的.
通过增加图形选项
Frame 用户可以修改图形的整体外观.
| Out[11]= |  |
Out[12]//InputForm= |
| |  |
在 Show 中可以指定图形选项. 因此, 一个直截了当的方式是取一个图形对象, 然后选择不同的图形选项将其显示.
然而应注意到 Show 总是返回已显示的图形对象. 如果在 Show 中指定图形选项, 这些选项就会自动的插入在 Show 返回的图形对象中. 于是, 除非明确指定其它的图形选项, 对相同的对象再次使用 Show 显示的图形将是相同的. 在任何情况下, 新指定的选项会覆盖既有的选项.
找出图形对象的选项.
一些图形选项可以用作产生图形的可视化函数的选项. 对于取 Automatic 的选项有时会被可视化函数赋以特定值.
| Out[13]= |  |
| Out[14]= |  |
确定图形块的完全形式.
对 Axes 等图形选项, Mathematica 的前端会自动画出用户需要的坐标轴等对象. 这些对象由选项值表示, 而非被确定的图形基元列表表示. 然而, 用户会需要要找到代表这些对象的图形基元列表. 函数 FullGraphics 给出不使用任何选项的情况下, 生成图形的完整的图形基元列表.
| Out[15]= |  |
Out[16]//Short= |
| |  |