此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.2)

2.9.4 二维图形的坐标系

Mathematica 中产生图形对象时,对各种图形基元给出坐标. 当 Mathematica 绘制图形对象时,它必须把原来给出的坐标转换为 "显示坐标","显示坐标" 指明 每个图形基元应该放置在最终显示区域的哪一个地方.
直接给出图形基元的显示坐标有时更方便,这可以用 "尺度坐标"  从 0 到1 变化, 坐标原点在显示区域的右下角.

二维图形的坐标系

矩形画在相对于显示区域的固定位置,不依赖于图形所使用的原始坐标

使用 Scaled[ sx, sy ] 就是用原始坐标或尺度坐标指定位置, 有时也需要混用两种坐标系. 例如,要在某一固定点画一条长度是图形 宽度一定比例的线段,这时就需要用原始坐标去确定线的基本位置,用尺度 坐标来确定线的长度.
将原始坐标和尺度坐标相结合,用 Scaled[ dsx, dsy ,  x, y ] 可确定位置. 在这里 {x, y} 用原始坐标给出位置,{dsx, dsy} 用尺度坐标给出从该位置算起的偏距.
也可以用带 1个或 2 个参数的 Scaled 去指定圆盘的半径和 Circle 图形基元.

按偏距指定的位置

这里每条线有 6 个打印机点数的绝对长度

Circle 内可以用仅有 一个变量的 Offset 去产生一个具有绝对半径的圆

在大部分图形中,当改变坐标系或总尺寸时,希望不同对象的位置能自动调节, 但有时也需要从一个对象到另一个对象的偏离能保持不变. 例如,在许多 图形中,不同的图形有不同的形式,但需要某些特点一致.
Offset[ adx, ady , position] 可以按原始坐标或尺度 坐标给出到某一点的偏移来确定对象的位置. 偏离的单位是打印机的点数, 等于 1/72 英寸.
图形中文本字形的尺寸也是按打印机的点数给出的. 例如 10 点字符的基本高度 是 10 个点. 用 Offset 在图形中移动文本去产生图形符号或与字形尺寸匹配的图标.

决定原始坐标翻译的选项

Mathematica 绘图时,首先要用原始坐标得到图形的显示范围. 在这个区域 外的图形基元将被擦去而不显示.
PlotRange 指定要包含的原始坐标的范围,其默认设置是 PlotRange->Automatic,它让 Mathematica 尽量选择图形有意义的部分, 丢掉不重要的部分. 设置 PlotRange->All 可以令 Mathematica 包含所有内容. 也可以给出确切的坐标区域.

这里建立一个顶点坐标大致都在 ±1 内的多边形

此处多边形几乎填满了全部显示区域

选用默认值 PlotRange->Automatic 不包括无关的点,但影响了所选择的坐标区域

PlotRange->All, 包括了外围的点,相应的坐标系也变化了

可选项 PlotRange 可以确定原始坐标系中的长方形区域并擦掉这个区域 外的图形基元. 为了显示已有的图形基元,Mathematica 必须决定最终 显示区域中该矩形的位置.
可选项 PlotRegion 确定矩形的顶点在最终显示区域中的位置,该位置用 尺度坐标给出,在显示区域中从 0 到 1 变化. 默认值是 PlotRegion -> {{0, 1}, {0, 1}},它要求矩形填满整个显示区域.

通过设置 PlotRegion 可以使图形有边幅

确定显示区域的形状

到此为止讨论的是 Mathematica 如何将原始坐标翻译为最终显示区域的 位置,按下来需讨论最终显示区域的形状.
大多数计算机系统有确定的屏幕或纸张输出区域,如何填充这些区域由形状 和纵横比确定,选项 AspectRatio 确定最终显示区域的纵横比.
重要的一点是要注意设定的纵横比不影响尺度或显示坐标的含义. 在 显示区域内这些坐标总是从 0 到 1 变化,AspectRatio 就是改变这个显示区域的形状.

产生了对应于六边形的图形对象

在高度是宽度的 3 倍的显示区域中画出的六边形

在二维图形中,AspectRatio 的默认值是 1/GoldenRatio (黄金分割). 有时需 要用原始坐标确定纵横比. 典型的情况是希望原始坐标系中 方向的一个单位相等,这时,在原始 坐标系中定义的对象按其自然形状显示,用选项 AspectRatio->Automatic 就能达到此效果.

AspectRatio->Automatic 最终显示区域的纵横比由原始坐标系确定.所以该六边形按其自然形状显示

在尺度坐标中,图形基元的大小是显示区域尺寸的一个比例,不能让 Mathematica 使用所显示图形的实际物理尺寸. 这个尺寸依赖于图形输出 设备的细节,不能由 Mathematica 完全确定. 然而,AbsoluteThickness 等图形指令可以用来给出一个图形元素的绝对尺寸. 在这种情况下,图形的尺寸大 部分依赖于输出设备 (例如,对图形进行光学投影时,不可能也不需要保持 其中图形基元的绝对尺寸).