我正在逐個像素地循環一個位圖,以確定該像素是否位於位圖上的一個圓圈內。我一直慷慨給予數學來確定這一點,但算法是使用pow(double,double)。我試着鑄造和使用Integer.doubleValue無濟於事。有沒有人有任何想法如何讓pow方法返回sqrt()方法需要的int? centreX和centreY都是一樣的。使用數學pow,改變雙和int之間的變量(android位圖)
[更新] 對不起開方回報,需要一個雙:)
感謝墊。
for (int i=0; i < bgr.getWidth(); ++i) {
for (int y=0; y < bgr.getHeight(); ++y) {
int aPixel = bgr.getPixel(i,y);
if(sqrt(pow(i - centreX, 2) + (pow(y - centreY, 2))) <= radius){
bgr.setPixel(i,y,Color.MAGENTA);
}
}
}
你在循環整個位圖嗎?真? – 2011-05-08 11:13:14
@ignacio vazquez-abrams爲什麼我感覺這是一個糟糕的主意:) – turtleboy 2011-05-08 11:25:44
圓圈有一個*非常*明確的方形包圍盒,多一點數學可以找到一個八邊形包圍盒,只有那些像素需要檢查。 – 2011-05-08 11:47:18