как создать ограничивающий прямоугольник круга Android - PullRequest
1 голос
/ 16 мая 2011

У меня есть растровое изображение, которое устанавливает две переменные centreX, centreY с помощью метода onTouchEvent ().Из этих координат x, y я рисую круг по растровому изображению и могу изменить пиксели круга на разные значения rgb с помощью slideBar.Я нацеливаюсь на внутренние пиксели круга с помощью алгоритма, но, к сожалению, в его нынешнем виде мне приходится искать все пиксели растрового изображения, чтобы нацелить пиксели круга.у этого есть огромные накладные расходы вызова метода, которые я хотел бы уменьшить.

Я собираюсь создать ограничивающую рамку вокруг круга, чтобы у моего алгоритма было меньше места для поиска, поэтому надеюсь, что все ускорится.Как создать прямоугольник вокруг круга, используя координаты центра 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()

Ответы [ 2 ]

0 голосов
/ 16 мая 2011

Это сработало нормально.

 public void findCirclePixels(){    



        for (int i=centreX-50; i < centreX+50; ++i) {
            for (int y=centreY-50; y <centreY+50 ; ++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()
0 голосов
/ 16 мая 2011

Измените пределы вашего внешнего цикла с circle.x - радиус на circle.x + radius, а ваш внутренний цикл - с circle.y - радиус на circle.y + радиус.В зависимости от того, какими могут быть ваши x и y, вам может потребоваться проверить, не являются ли какие-либо из этих значений меньше 0 или превышают пределы ширины или высоты ваших изображений.

...