Vil*_*len 7 java android polygon bitmap
正如标题所暗示的,我需要一种算法、代码或库来帮助我将 a Bitmap(或PathAndroid 中的 a)拉伸到任意多边形。多边形带有x,y坐标列表。实际上,我需要Path在 Android 中转换/拉伸一个对象,该对象也由x,y坐标给出。我提到Bitmap是因为更有可能有人遇到类似的问题,我认为两者都会被转换成Matrix
我尝试使用的,Matrix.setPolyToPoly(...)但它似乎没有帮助,因为它正在转换为方形区域(只有 4 点)而不是任意多边形。
为了更好地说明我需要什么,请查看下面的图片。这不是精确的转换,而是接近的东西。请注意,整个图像被拉伸为星形多边形,它不是蒙版也不是修剪,只是像素过渡。

几天前我看到了你的问题,然后昨天我遇到了这个:
这有点难以掌握,但我理解它的方式是从位图上的假想弹性网格开始。您想要扭曲位图的方式可以通过将网格的 x,y 点移动到备用位置来表达。
显然,现在最困难的部分是获取框架多边形并使用它来生成网格中的扭曲顶点。这可能需要一些奇妙的数学知识。但我认为这将是朝着正确方向迈出的一步。
这就是我的设想:我正在看着星形多边形,并想象一个圆作为起点(而不是正方形)。星形可以被视为将圆及其上的点向中心和远离中心拉伸。无论以哪种方式拉伸都会产生一些向量,从中心的零到拉伸点的最强。
对于 a Path,您可以将向量应用到路径中的点,但是线也需要弯曲,所以这将是一些带有贝塞尔曲线的非常复杂的数学(至少对我来说是复杂的,我不是任何类型的)数学家)。
但如果你把它画Path到a上,Bitmap你可能会处于更好的位置。您可以使用不同的向量更改网格顶点,然后用于Canvas.drawBitmapMesh()渲染最终结果。
| 归档时间: |
|
| 查看次数: |
749 次 |
| 最近记录: |