【问题标题】:vectors vs. vector graphics矢量与矢量图形
【发布时间】:2009-12-09 15:53:59
【问题描述】:

编程语言中使用的向量(例如数组)与矢量图形之间的关系是什么(如果有)?

为什么他们共享vector这个词?它是否代表了它们性质的某些类似方面,还是巧合?

考虑一下,位图图像更适合术语矢量图形,因为它是由像素数组表示的。..

【问题讨论】:

  • 为什么可以用“猪”这个词来表示一种哺乳动物和金属锭?人类语言,尤其是英语,就是这样。
  • 但每种情况下的“向量”确实源自相同的数学结构。
  • 只有当你认为一组值和一个方向的概念是一回事时。
  • 一组有序的值本身就具有方向性。
  • 这取决于您的坐标系。假设欧几里得空间,它将是 1 \hat{i}, 2 \hat{j}, 3 \hat{k},其中通常假设原点 (0,0,0) 作为初始点。集合和向量的区别在于 (1,2,3) != (1,3,2)

标签: vector terminology vector-graphics


【解决方案1】:

向量是一组值,“通常”(数学家会杀了我)表示事物(函数或其他向量)线性组合的系数。

例如,当你说

[4, 3, 7]

您的基础是 x 的幂指数集(即 1、x、x^2、x^3 等...),此向量表示多项式

4 + 3x + 7 x^2

如果您使用不同的基础,例如 3d 空间中的任意方向,则相同的向量表示 3d 空间中的方向。

4i + 3j + 7k

(横向考虑:请注意,3d空间是3维的有限向量空间,而多项式空间是无限向量空间,或者更好定义的希尔伯特空间)

这是一个向量(想像一个箭头),指向空间中的特定方向,从起点到终点。约定是 i、j 和 k 是所谓的 3d 矢量空间的基组矢量,其中每个点的坐标表示为 x、y 和 z。换句话说,空间中的每一个点,空间中的每一个方向,都可以用三个数字(一个向量)x, y, z来表示,它代表了空间向量x * i + y * j + z * k

在矢量图形中,您不是将图形实体表示为像素网格(光栅图形),而是表示为数学公式。曲线被描述为参数化的数学表达式。这为显示打开了许多不错的属性,因为数学描述基本上具有无限的分辨率。您还可以在不破坏其描述的情况下对这些实体应用数学变换,例如旋转,这些变换深深植根于线性代数、控制向量空间、矩阵等变换的学科......

【讨论】:

  • 这是给出的解释中最好的。
【解决方案2】:

它们在数学中具有相同的含义。

graphics 的含义(从空间中任意位置的连续值偏移)源于您使用 mathematical 向量来表示它(例如一个表示起点并表示偏移量)。

编程语言的含义(一组有序的数字)是写下数学版本的一种方式。

【讨论】:

    【解决方案3】:

    向量是一组有序的值,例如<1, 2, 3>。它与数组不同,因为它的大小是固定的,表示许多值,并且它们在向量中的位置很重要。数组只是事物的有序集合。元素的顺序很重要,但与它们的位置无关。里面的东西一般都是同一类型的。

    如果向量表示<# apples, # oranges, # pears>,那么它可以被解释为<1 apple, 2 oranges, 3 pears>。如果它代表<X position, Y position, Z position>,那么上面的可能意味着<1 in the X axis, 2 in the Y axiz, 3 in the Z axis>Euclidean vector)。因此向量可以表示任意维度的坐标,并用于在矢量图形中存储信息。

    【讨论】:

    • 但是 C++ 中的 stl::vector 呢?它就像一个数组一样工作,并且不按设计指定“位置”数据。我也听说数组被称为向量,反之亦然。
    • 请注意,我是 C++ 的粉丝,但我想说:永远不要依赖 C++ 命名事物的方式 ;-) 在 C++ 中,std::vector 只是一个数组,其中的内存是自动管理。
    • 我认为这只是语义。 std:vector 确实有位置信息(索引);与数组相同。虽然代码中的这个位置信息可能没有任何意义,但对程序员来说肯定是有意义的。
    • 光栅化图像将数据存储为一组矢量,您还没有了解矢量图形中的矢量的含义。
    • @klochner:不,光栅化图像由单个(一维)像素数组组成,其中每个数组段代表各种字节顺序和大小分布中的颜色分量。
    【解决方案4】:

    我猜它来自数学术语“向量”,它是一个几何概念。当您对数学向量(理论上)在连续域中而不是离散像素上进行操作时,您可以以任意精度进行计算。在图形应用程序中,这意味着您可以保留精确的点位置,而不管您显示图片的缩放系数。

    【讨论】:

      【解决方案5】:

      矢量图形与“普通”图形不同,因为它可以在没有锯齿的情况下进行缩放。之所以称为矢量图形,是因为每条线或其他对象都由一个向量表示,而不是“按像素”的普通图形。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-14
        • 2011-04-30
        • 2011-02-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多