누군가가 나를 Android의 미친 Canvas 클래스를 이해하는 데 도움이됩니다. 그것은 정확하지 않은 것 같아요 왜 매개 변수가 부동 소수점 값을 왜 확실하지 않습니다.캔버스 그리기 정확도 문제
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setColor(Color.RED);
mPaint.setAntiAlias(false);
mPaint.setDither(false);
mPaint.setFilterBitmap(false);
Path path1 = new Path();
path1.moveTo(151, 100);
path1.lineTo(200, 200);
path1.lineTo(100, 151);
path1.lineTo(200, 151);
path1.lineTo(100, 201);
path1.lineTo(151, 100);
// So that these points constitute a closed polygon
path1.setFillType(Path.FillType.EVEN_ODD);
mPaint.setStyle(Paint.Style.FILL);
mPaint.setColor(Color.GRAY);
// Draw the polygon
mCanvas.drawPath(path1, mPaint);
에서 Windows GDI와 Windows의 유사한 코드를 실행하면 손톱 점을 정확하게 예를 들어, 여기에 내가 절대 소수점 값으로 그리려는 다각형이다. 그러나 안드로이드에는 두 가지 문제가 있습니다.
1) 앤티 앨리어스를 끈 경우에도 선이 앤티 앨리어스로 표시됩니다 (회색 선 주위에 검은 픽셀이 있음). 2) 항상 지정된 지점에 도달하지는 않습니다.
Path path1 = new Path();
path1.moveTo(151, 100-1);
path1.lineTo(200+1, 200+1);
path1.lineTo(100-1, 151);
path1.lineTo(200+2, 151);
path1.lineTo(100, 201);
path1.lineTo(151+1, 100);
내가 여기에 규칙이나 무엇을 그 일을 알아낼 수 없습니다 : 가끔 가끔 내가 원하는 지점에 가까이하기 위해하지
하지, 않습니다, 나는이 작업을 수행해야 너무 이상합니다.