Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在移动设备上高效地绘制矢量曲线?_Android_Mobile_Vector - Fatal编程技术网

Android 如何在移动设备上高效地绘制矢量曲线?

Android 如何在移动设备上高效地绘制矢量曲线?,android,mobile,vector,Android,Mobile,Vector,我正在开发一个基于矢量的移动应用程序。首先,我开始使用多边形来表示曲线。然而,我很快就达到了手机的多边形极限。为了克服这个限制,我开始使用纹理并对像素着色。尽管这是一个非常简单的解决方案,但我还是受到纹理和操作的最大分辨率的限制 我发现唯一有希望的东西是OpenVG,但它似乎不是很受欢迎 那么,如何在手机上创建矢量绘图应用程序呢?Adobe Illustrator mobile让我大吃一惊,它似乎能够在矢量图形中绘制无限的曲线/线。允许基于矢量的自由形式曲线绘制的一种可能方法是使用。Bezier

我正在开发一个基于矢量的移动应用程序。首先,我开始使用多边形来表示曲线。然而,我很快就达到了手机的多边形极限。为了克服这个限制,我开始使用纹理并对像素着色。尽管这是一个非常简单的解决方案,但我还是受到纹理和操作的最大分辨率的限制

我发现唯一有希望的东西是OpenVG,但它似乎不是很受欢迎


那么,如何在手机上创建矢量绘图应用程序呢?Adobe Illustrator mobile让我大吃一惊,它似乎能够在矢量图形中绘制无限的曲线/线。

允许基于矢量的自由形式曲线绘制的一种可能方法是使用。Bezier曲线通过插值由起点、终点和任意数量的控制点定义的值来构造。这样就可以从一组仅有3个笛卡尔点构造自由形式曲线

这样做的一个好处是,只需存储表示曲线的点数据,就可以以任意比例渲染同一条曲线,而无需将曲线存储在纹理中。因此,不需要存储数百个中间点来形成表示同一曲线的小线段

在Android中使用Path对象来构造自由形式的向量曲线


如果有大量曲线要渲染到画布,则只需存储定义贝塞尔曲线的点数据。重要的是,您只需创建一次
路径
对象,并在每次绘制新曲线时使用
重置
方法重新定义点

允许基于向量的自由形式曲线绘制的一种可能方法是使用。Bezier曲线通过插值由起点、终点和任意数量的控制点定义的值来构造。这样就可以从一组仅有3个笛卡尔点构造自由形式曲线

这样做的一个好处是,只需存储表示曲线的点数据,就可以以任意比例渲染同一条曲线,而无需将曲线存储在纹理中。因此,不需要存储数百个中间点来形成表示同一曲线的小线段

在Android中使用Path对象来构造自由形式的向量曲线


如果有大量曲线要渲染到画布,则只需存储定义贝塞尔曲线的点数据。重要的是,您只需创建一次
路径
对象,并在每次绘制新曲线时使用
重置
方法重新定义点

我知道贝塞尔曲线是如何工作的,但机器人的路径曲线有多有效?我能画上千行而不受任何内存限制吗?示例应用程序而非代码片段?路径在Android中是一个可变对象。因此,仅使用一个路径对象,就可以加载贝塞尔曲线的定义点数据、渲染到画布、重置路径对象并将新点数据加载到同一路径对象。因此,如果有足够的内存存储点数据以定义所有贝塞尔曲线,则应用程序可以渲染数千条曲线。下面是一些示例,说明如何使用“重置”来重新定义路径对象中的点数据,以便可以重用:codota页面上的所有示例都链接到github项目,它们是github项目的一部分,因此您可以下载使用代码段的完整项目。我知道Bezier曲线是如何工作的,但Androids路径曲线有多高效?我能画上千行而不受任何内存限制吗?示例应用程序而非代码片段?路径在Android中是一个可变对象。因此,仅使用一个路径对象,就可以加载贝塞尔曲线的定义点数据、渲染到画布、重置路径对象并将新点数据加载到同一路径对象。因此,如果有足够的内存存储点数据以定义所有贝塞尔曲线,则应用程序可以渲染数千条曲线。下面是一些示例,说明如何使用“重置”重新定义路径对象中的点数据,以便可以重用:codota页面上的所有示例都链接到它们所属的github项目,以便您可以下载使用代码段的完整项目。