我正在看这个名为Creative Docs .Net的矢量绘图应用程序。我注意到我可以有数百种形状,移动,旋转和缩放根本不会滞后。鉴于必须修改所有顶点,应用程序通常如何尽快进行这些转换?
由于
答案 0 :(得分:2)
一种典型的方法是在坐标上应用3x3(或3x2或2x3)仿射变换矩阵,可以描述位置,旋转,比例和剪切等。
如果您使用OpenGL或Direct3D,您可以使用图形硬件为您进行实际转换。
如果你在软件中这样做,rasteration可能会成为瓶颈,而不是转换顶点。
答案 1 :(得分:1)
除了使用矩阵来模仿仿射变换(带平移的线性变换)之外,您可能对使用Quaternions在 R 3 <中执行这些操作感兴趣/ SUP>
答案 2 :(得分:0)
通常,这是通过转换矩阵完成的。这样可以非常快速地转换各个点,这是大多数基于2D(和3D)矢量绘图的最常用技术。
特别是,该应用程序构建在Anti-Grain Geometry之上 - 一个相当高性能的开源2D渲染引擎。它提供了许多可用于此类应用的“原语”。