첫 번째 "foo"는 정상이지만 두 번째 것은 너무 커서 "f"의베이스 만 볼 수 있습니다. font-size가 기본값입니다. 그것은 단지 int
크기와 규모에 대한 감각을 만들 것입니다 크기를 수 있기 때문에 도움이되지 않습니다 글꼴 크기를 변경Graphics2D - 스케일 된 좌표 공간에서 텍스트가 큽니다.
BufferedImage image = new BufferedImage(500, 500, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = image.createGraphics();
Shape ellipse = new Ellipse2D.Double(0, 0, 1.0, 1.0);
g2.setPaint(Color.RED);
g2.drawString("foo", 100, 100);
g2.scale(500.0f/length, 500.0f/length);
g2.drawString("foo", 1, 1);
는 0.02
같은 것입니다.
크기 조정 된 공간에서 텍스트를 그릴 필요가있는 이유는 노드 그리드를 그리기 때문에 좌표를 각 차원의 노드 수에 맞게 크기를 조정하기 때문입니다. 그렇게하면 복잡한 계산을 할 필요가 없습니다.
가장자리에 레이블을 지정하는 텍스트가 필요합니다.
업데이트 : 나는 다음과 같은 순서 I 텍스트 그리기 할 때마다 수행하여 텍스트를 얻을 수 있어요 :의 변환 저장 스케일링 공간에서 원하는 위치로 번역을 unscaling, (0, 0)
에있는 텍스트 그리기, 변환을 복원하는 것.
'길이'의 유형 및 값은 무엇입니까? – megadan
@ 메가단 값은 '2'에서 '1000'까지의 정수 일 수 있습니다. – necromancer
float 또는 double 대신에 정수 두 개를 나누어서 분수 부분을 잃어 버리고 있습니다. – megadan