Java 获取图像的顶点?
我正在使用精灵艺术,我需要为碰撞检测器生成一个多边形(顶点数组) 我有一个Java 获取图像的顶点?,java,math,graphics,Java,Math,Graphics,我正在使用精灵艺术,我需要为碰撞检测器生成一个多边形(顶点数组) 我有一个getPixel(x,y)方法可以用来获取像素的颜色。我不需要任何花哨的颜色检测或任何东西,只需要实心像素和透明像素。以下是我在大脑开始融化之前开始做的事情: boolean[] hasColor = new boolean[size]; for (int i = 0; i < size; i++) { int row; row = i % width; if ((pixmap.getPix
getPixel(x,y)
方法可以用来获取像素的颜色。我不需要任何花哨的颜色检测或任何东西,只需要实心像素和透明像素。以下是我在大脑开始融化之前开始做的事情:
boolean[] hasColor = new boolean[size];
for (int i = 0; i < size; i++) {
int row;
row = i % width;
if ((pixmap.getPixel(i, row) != 0) || (pixmap.getPixel(row, i) != -256)) {
hasColor[i] = true;
} else {
hasColor[i] = false;
}
}
boolean[]hascaolor=新布尔值[size];
对于(int i=0;i
这样可以跟踪哪些像素是空的,哪些不是空的。但我不知道我应该从这里走到哪里
有没有一个算法或者什么我可以帮上忙的?有人能提供输入吗?您拥有的是光栅艺术品 你需要的是一个矢量轮廓 从矢量到光栅的转换很容易,从光栅到矢量的转换就不那么容易了 以下是一个可能的工作流:
*****
* *
* *
* *
* *
* *
*****
B) 将“拟合”定义为轮廓的优度,通过检查六边形内像素的百分比来计算(不必是上面显示的规则形状的图形)。
C) 更改顶点的位置,直到找到最佳匹配(或直到感到疲劳)
当然,步骤(C)是最难的一步。另外,如果你的精灵需要更多的顶点,你可能需要从一个八角形/n角形开始。也许你在寻找这样的东西?