Android 如何在移动设备上高效地绘制矢量曲线?
我正在开发一个基于矢量的移动应用程序。首先,我开始使用多边形来表示曲线。然而,我很快就达到了手机的多边形极限。为了克服这个限制,我开始使用纹理并对像素着色。尽管这是一个非常简单的解决方案,但我还是受到纹理和操作的最大分辨率的限制 我发现唯一有希望的东西是OpenVG,但它似乎不是很受欢迎Android 如何在移动设备上高效地绘制矢量曲线?,android,mobile,vector,Android,Mobile,Vector,我正在开发一个基于矢量的移动应用程序。首先,我开始使用多边形来表示曲线。然而,我很快就达到了手机的多边形极限。为了克服这个限制,我开始使用纹理并对像素着色。尽管这是一个非常简单的解决方案,但我还是受到纹理和操作的最大分辨率的限制 我发现唯一有希望的东西是OpenVG,但它似乎不是很受欢迎 那么,如何在手机上创建矢量绘图应用程序呢?Adobe Illustrator mobile让我大吃一惊,它似乎能够在矢量图形中绘制无限的曲线/线。允许基于矢量的自由形式曲线绘制的一种可能方法是使用。Bezier
那么,如何在手机上创建矢量绘图应用程序呢?Adobe Illustrator mobile让我大吃一惊,它似乎能够在矢量图形中绘制无限的曲线/线。允许基于矢量的自由形式曲线绘制的一种可能方法是使用。Bezier曲线通过插值由起点、终点和任意数量的控制点定义的值来构造。这样就可以从一组仅有3个笛卡尔点构造自由形式曲线 这样做的一个好处是,只需存储表示曲线的点数据,就可以以任意比例渲染同一条曲线,而无需将曲线存储在纹理中。因此,不需要存储数百个中间点来形成表示同一曲线的小线段 在Android中使用Path对象来构造自由形式的向量曲线
如果有大量曲线要渲染到画布,则只需存储定义贝塞尔曲线的点数据。重要的是,您只需创建一次
路径
对象,并在每次绘制新曲线时使用重置
方法重新定义点 允许基于向量的自由形式曲线绘制的一种可能方法是使用。Bezier曲线通过插值由起点、终点和任意数量的控制点定义的值来构造。这样就可以从一组仅有3个笛卡尔点构造自由形式曲线
这样做的一个好处是,只需存储表示曲线的点数据,就可以以任意比例渲染同一条曲线,而无需将曲线存储在纹理中。因此,不需要存储数百个中间点来形成表示同一曲线的小线段
在Android中使用Path对象来构造自由形式的向量曲线
如果有大量曲线要渲染到画布,则只需存储定义贝塞尔曲线的点数据。重要的是,您只需创建一次
路径
对象,并在每次绘制新曲线时使用重置
方法重新定义点 我知道贝塞尔曲线是如何工作的,但机器人的路径曲线有多有效?我能画上千行而不受任何内存限制吗?示例应用程序而非代码片段?路径在Android中是一个可变对象。因此,仅使用一个路径对象,就可以加载贝塞尔曲线的定义点数据、渲染到画布、重置路径对象并将新点数据加载到同一路径对象。因此,如果有足够的内存存储点数据以定义所有贝塞尔曲线,则应用程序可以渲染数千条曲线。下面是一些示例,说明如何使用“重置”来重新定义路径对象中的点数据,以便可以重用:codota页面上的所有示例都链接到github项目,它们是github项目的一部分,因此您可以下载使用代码段的完整项目。我知道Bezier曲线是如何工作的,但Androids路径曲线有多高效?我能画上千行而不受任何内存限制吗?示例应用程序而非代码片段?路径在Android中是一个可变对象。因此,仅使用一个路径对象,就可以加载贝塞尔曲线的定义点数据、渲染到画布、重置路径对象并将新点数据加载到同一路径对象。因此,如果有足够的内存存储点数据以定义所有贝塞尔曲线,则应用程序可以渲染数千条曲线。下面是一些示例,说明如何使用“重置”重新定义路径对象中的点数据,以便可以重用:codota页面上的所有示例都链接到它们所属的github项目,以便您可以下载使用代码段的完整项目。