1
나는 플로팅하는 세 개의 시계열을 가지고 있는데, XYLineAndShapeRenderer가 시리즈를 표시하는 데 사용하는 실제 모양으로 숫자 1, 3 및 5를 사용하고 싶습니다.JFreeChart의 XYPlot에 포인트를 표시하는 데 사용되는 모양 아이콘으로 숫자를 사용할 수 있습니까?
- 가있는 java.awt에 문자/그림 문자 변환 :
는 내가 다음 작업을 수행하는 방법을 알아낼 수 있다면, JFreeChart의를 사용 경험이없는 경우에도 나는 내 작업을 수행 할 수 있다고 생각
A
답변
2
당신은 얻을 수
는 이미지 아이콘에 문자/문양을 변환 .Shape 문양 Font.createGlyphVector
및 GlyphVector.getGlyphOutline
을 사용하여 설명합니다. 아래의 방법은 지정된 String
에 대해 GlyphVector
을 검색하고 해당 윤곽을 검색하여 처리 중에 AffineTransform
을 적용합니다. 기본적
static Shape[] getGlyphShapes(Font font, String strGlyphs, AffineTransform transform) {
FontRenderContext frc = new FontRenderContext(null, true, true);
GlyphVector glyphs = font.createGlyphVector(frc, strGlyphs);
int count = glyphs.getNumGlyphs();
Shape[] shapes = new Shape[count];
for (int i = 0; i < count; i ++) {
// get transformed glyph shape
GeneralPath path = (GeneralPath) glyphs.getGlyphOutline(i);
shapes[i] = path.createTransformedShape(transform);
}
return shapes;
}
반환 된 글리프 형상 따라서, 폰트 크기 1 AffineTransform
이다. 변환 예는 다음과 같습니다 대략 더 정확한 센터링을 위해 (40)의 글꼴 크기 (난 당신이 필요합니다 가정) 각 문양을 중심으로해야
AffineTransform transform = new AffineTransform();
transform.translate(-20, 20);
transform.scale(40, 40);
, 당신은 GlyphVector.getGlyphMetric
을 통해 얻은 GlyphMetrics
을 사용할 수 있으며, 필요한 정확한 번역을 계산하십시오.