我有一个位图,通过onTouchEvent()方法设置两个变量centreX,centreY。从这些x,y坐标中,我在位图上绘制一个圆,并可以通过一个slideBar将圆的像素更改为不同的rgb值。我用算法来定位圆的内部像素,但不幸的是,我必须逐个像素地搜索整个位图来定位圆的像素。这有一个巨大的方法调用开销,我想减少。如何创建一个圆的边界框android
我想要做的是在圆周上创建一个边界框,这样我的算法搜索空间就会减少,所以希望能够加快速度。我如何使用圆的x,y中心坐标和半径为50来创建一个矩形圈?
谢谢亚光。
public void findCirclePixels(){
for (int i=0; i < bgr.getWidth(); ++i) {
for (int y=0; y < bgr.getHeight(); ++y) {
if(Math.sqrt(Math.pow(i - centreX, 2) + (Math.pow(y - centreY, 2))) <= radius){
bgr.setPixel(i,y,Color.rgb(Progress+50,Progress,Progress+100));
}
}
}
}// end of changePixel()
我想,画一个新的圈子要便宜得多。你应该考虑引入一个框架步骤或只是清除并重新创建屏幕内容 – kostja 2011-05-16 15:22:40
@kostja你好,我不确定你是否理解我的要求,对不起,如果你这样做:)。我只是将圆的像素设置为不同的颜色,以确保滑块和像素算法能够正确分辨像素。该应用程序最终将在圆上应用鱼眼效果(基本上扭曲圆的像素)。我可以在位图中找到圆的像素的唯一方法是从左到右,从上到下,逐个像素搜索整个位图。我只想在圈子周围搜索一个矩形,所以没有电话。 – turtleboy 2011-05-16 15:40:18
我以为我明白你的要求,但我不再那么肯定,特别是关于为什么:)如果它不适合你的问题,请忽略我的第一个评论。 – kostja 2011-05-17 08:02:28