Java2D를 사용하여지도를 그려 가고 있습니다. 내지도가 축소되면 내 도로가 인위적인 그림을 그려냅니다.Java2D 그래픽을 사용하여 밀집도가있는 두꺼운 선을 올바르게 그리려면 어떻게합니까?
선 스타일을 사용 :
이 가까이 확대 도로의 유사한 섹션이 완전한 미국 상태를 그리기 화면의 작은 부분 2 픽셀에 해당하는 너비로 조정 된 실선의 파란색 선입니다. 다양한 렌더링 힌트와 줄 결합 규칙을 시도했지만 아무 도움이되지 않습니다.
OS/X 10.8을 실행하는 Mac에서 Open JDK 1.7을 사용하고 있으며 Sun JDK 1.6이 설치된 Linux 컴퓨터에서도 재현 할 수 있습니다.
모든 모양과 변환은 Java2D에서 가능한 한 배정 밀도입니다. 선의 기하학은 많은 밀집된 점을 가지고 있으며 드로잉의 원인은 렌더러가 하나의 픽셀보다 가까운 연속 된 점에 혼란스러워하고 있다고 생각합니다.
포인트를 줄이지 않고도 축소 된 모양의 모양을 개선 할 수있는 방법이 있습니까?
편집 유물은 별도의 선분이 만나는 지점에서, 그래서 누락 된 픽셀이 끝 점이 동일한 경우에도, 라인 캡 (끝) 충족되지 함께 할 수있는 뭔가하는 도면. 이 이미지는 두 선 세그먼트 사이의 회의 지점을 보여줍니다. 나는 각각의 선분을 7 픽셀 크기의 선 스타일로 강조 표시했다. (XOR-ed with white) 그러나 아주 가까이서 보면 원래의 파란색 선의 일부를 볼 수있다. (둥근 대문자가 겹치고 XOR 드로 모드) 보통의 눈금에서는 끝이 겹쳐지는 것처럼 보입니다. 그러나 일반 페인트 모드에서 축소하거나 축소하면 파선 효과가 나타납니다.
한 가지 해결 방법은 그리기 전에 인접한 모든 선 세그먼트를 함께 연결하는 것이지만 여전히 드로잉 공작물의 실제 원인을 알고 싶습니다.
답장을 보내 주셔서 감사합니다. 규모 조정과 변환 작업을 결합한 AffineTransform을 사용하고 있습니다. 또한 스트로크 너비를 조절합니다. 내 좌표 중 일부는 5 - 10m 떨어져 있습니다. 축소 된 캔버스의 전체 너비는 약 1,000,000m입니다. Apple 1.6 JDK로 실행되는 이전 버전의 코드로 롤백 할 수 있는지 확인합니다. 도로를 그릴 때 나는 주로 문제를 봅니다. 군 경계는 괜찮아 보이지만 아마도 같은 수준의 세부 사항은 없을 것입니다. – richj
Apple JDK 1.6에서도 문제가 발생합니다. 문제가 라인 내에서 인조 물을 그리는 것과 관련이 없지만 라인 세그먼트의 끝점에서 발생하는지 궁금해지기 시작했습니다. 데이터를 면밀히 살펴보면 도로는 많은 정점이있는 긴 연속 선이 아니라 인접한 종점이있는 더 짧은 선 세그먼트입니다. – richj
이 대답을 받아 들일 때 결국 해결책이되었습니다. 이 레이어의 드로잉 최적화 중 하나를 해제하거나 각 고속도로에서 세그먼트를 함께 결합해야합니다. – richj