Android ApiDemos 예제 분석 (70): Graphics - > PathFillTypes

간단 한 폐쇄 도형 (경로 가 교차 하지 않 는 현상) 에 대해 도형 의 외부 와 내부 와 판단 하기 쉽 지만 경로 가 교차 하 는 상황 이 있 으 면 중 첩 된 부분 에 대응 하여 서로 다른 충전 모델 을 사용 하면 내부 와 외부의 정의 가 다르다.충전 모드 는 두 가지 로 나 눌 수 있 습 니 다.
  • EVEN_ODD 는 한 직선 으로 도형 을 가로 지 를 때 외부 와 내부 가 번갈아 나타 나 는 것 을 의미한다.
  • WINDING 은 곡선 C 와 지정 점 P 에 대응 하여 P 에서 출발 하 는 임의의 방향 으로 무한 연장 하 는 직선 을 만 듭 니 다.곡선 C 와 이 직선의 모든 교점 을 찾 아 라.시계 방향 과 곡선 이 교차 하 는 모든 교점 의 개 수 를 계산 한 다음 에 시계 반대 방향 과 곡선 이 교차 하 는 개 수 를 계산한다. 만약 에 두 개의 수가 같 으 면 이 점 이 곡선 내부 에 있 고 같 지 않 으 면 이 점 이 곡선 외부 에 있다 는 것 을 나타 낸다.

  • Android 의 Path. FillType 은 위의 두 가지 모드 를 지원 하 는 것 외 에 위의 두 가지 모드 의 역 모드 도 지원 하 며 모두 EVEN 을 정의 합 니 다.ODD, INVERSE_EVEN_ODD, WINDING, INVERSE_WINDING 네 가지 모드.
    본 사례 의 기본 도형 은 두 개의 교차 하 는 원 으로 상기 네 가지 모델 로 도형 을 채 웠 다.
    showPath(canvas, 0, 0, 
     Path.FillType.WINDING, paint); 
    showPath(canvas, 160, 0, 
     Path.FillType.EVEN_ODD, paint); 
    showPath(canvas, 0, 160, 
     Path.FillType.INVERSE_WINDING, paint); 
    showPath(canvas, 160, 160, 
     Path.FillType.INVERSE_EVEN_ODD, paint);

    좋은 웹페이지 즐겨찾기