Paint myPaint02 = new Paint();
myPaint02.setAntiAlias(false);
myPaint02.setStrokeWidth(10.0f);
Path path02 = new Path();
RectF myRectF02 = new RectF();
Region myRegion02 = new Region();
ArrayList<Point> myPoints02 = new ArrayList<Point>();
path02.moveTo(100, 300);
path02.rLineTo(100, 0);
path02.rLineTo(0, 100);
path02.rLineTo(-100, 0);
path02.rLineTo(0, -100);
path02.close();
path02.computeBounds(myRectF02, true);
myRegion02.setPath(path02, new Region((int)myRectF02.left, (int)myRectF02.top, (int)myRectF02.right, (int)myRectF02.bottom));
myPoints02.add(new Point(100,300)); myPoints02.add(new Point(150,300));
myPoints02.add(new Point(200,300)); myPoints02.add(new Point(200,350));
myPoints02.add(new Point(200,400)); myPoints02.add(new Point(150,400));
myPoints02.add(new Point(100,400)); myPoints02.add(new Point(100,350));
for(int i=0; i<myPoints02.size(); i++) {
if(myRegion02.contains(myPoints02.get(i).x, myPoints02.get(i).y)==true) {
myPaint02.setColor(0x55ff0000);
canvas.drawPoint(myPoints02.get(i).x, myPoints02.get(i).y, myPaint02);
// 좌상단 3곳은 contains == true
} else {
myPaint02.setColor(0xff00ff00);
canvas.drawPoint(myPoints02.get(i).x, myPoints02.get(i).y, myPaint02);
// 우하단 5곳은 contains == false
}
}
100x100 크기의 사각형의 Path 를 Region 영역으로 잡고,
사각형의 꼭지점과 변에 위의 점 8개를 contains 로 확인해보면
좌상단 3곳은 true 이고 (영역에 포함됨)
우하단 5곳은 false 입니다. (영역에 포함안됨)
이거 왜 이런건가요?
조언부탁드립니다 ㅠㅠ