onTouchEvent() メソッドを介して centerX と centerY の 2 つの変数を設定するビットマップがあります。これらの x、y 座標から、ビットマップ上に円を描画し、slideBar を介して円のピクセルを別の RGB 値に変更できます。アルゴリズムで円の内側のピクセルをターゲットにしていますが、残念ながら現状では、ビットマップ全体をピクセルごとに検索して、円のピクセルをターゲットにする必要があります。これには、私が削減したい大量のメソッド呼び出しのオーバーヘッドがあります。
私が考えているのは、円の周りに境界ボックスを作成して、アルゴリズムが検索するスペースを少なくして、うまくいけば速度を上げることです。円の 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()