2013-03-24 2 views
0

나는 안드로이드에 1 ~ 10px 직경의 많은 원을 그리는 캔버스를 가지고 있습니다.Android 캔버스 : 투명한 배경에만 서클 그리기

원을 투명한 배경 위에 인쇄하고 싶습니다. 원이 그려지는 곳에 다른 색이 있으면 취소해야하며 이미 해당 색을 알고 싶습니다. 그것도 조금 겹쳐있을 때도.

문제는 내가 찾은 방법이 성능이 좋지 않다는 것입니다.

화면에 10000 개가 넘는 원을 그렸습니다. 제대로 작동하지만 겹치기 때문에이 문제를 처리해야합니다.

아무도 도와 줄 수 있습니까 ?? :-)

답변

0

당신은 질문이 명확하지 않습니다.

"배경을 표시하기 전에"어떤 색이 있는지 알고 싶다면 아무런 해결책이 없습니다. 나는 누군가가 그것에 대한 답을 찾을 수 있다면 매우 흥미가있을 것입니다.

"이전에 그리려는 현재 원과 겹칠 원을 그린 경우"를 알고 싶다면 프로그래밍 방식으로 이전에 그린 모든 원의 목록을 유지하고, 그들의 중심 위치와 직경을 확인하고 새로운 원과 겹칠 지 확인하십시오. 그 계산은 매우 쉽고 1 000 자조차도 충분히 빨라야합니다.

또한 이러한 계산을 최적화하는 몇 가지 방법이 있습니다. 예를 들어, 상황이 너무 느리면 클래식 euclidian 측정 대신 다른 거리 측정을 사용할 수 있습니다. 예를 들어 절대 값을 사용하여 x와 y의 차이를 중심 간의 차의 제곱의 합을 제곱 한 값 대신 사용할 수 있습니다.