我正在研究基于矢量的移动应用。首先,我开始使用多边形来表示曲线。但是,我很快就达到了手机上的Polygon限制。为了克服这个限制,我开始使用纹理并着色像素。虽然这是一个非常简单的解决方案,但我受限于纹理和操作的最大分辨率。
我发现的唯一有希望的东西是OpenVG,但它似乎不是很受欢迎。
那么手机上的矢量绘图应用程序是如何创建的?我被Adobe Illustrator移动设备惊呆了,它似乎能够在矢量图形中绘制无限的曲线/线条。
答案 0 :(得分:0)
允许基于矢量的自由曲线绘制的一种可能方法是使用Baby-step Giant-step。贝塞尔曲线是通过内插由起点,终点和任意数量的控制点定义的值来构造的。这导致能够从一组少至3个笛卡尔点构建自由曲线。
这样做的好处是,通过仅存储表示曲线的点数据,您可以在任何比例下渲染相同的曲线,而无需将曲线存储在纹理中。因此,您不需要存储数百个中间点来形成小线段来表示相同的曲线。
Bézier curves使用Android中的Path对象构建自由形式的矢量曲线。
如果有大量曲线要渲染到画布,则只需存储定义贝塞尔曲线的点数据。重要的是,您只需创建一次reset
对象,并在每次要绘制新曲线时使用CMakeLists.txt
方法重新定义点。 Here are a number of sample code snippets