2011-08-05 3 views
2

저는 JFreeChart를 사용 중이며, 사이에 공백없이 회색 및 검정색 대시를 번갈아 사용하는 일련의 데이터를 플롯하려고합니다. 예 : grayblackgrayblackgrayblack두 색상을 번갈아 나타내는 점선을 만드는 방법은 무엇입니까?

JFreeChart는 계열 렌더링 방법으로 AWT Stroke 또는 Shape 객체 만 허용합니다.

제가 알고 있듯이 BasicStroke는 하나의 색상 만 가질 수 있으며 불투명과 투명 사이에서 번갈아 나타납니다. 여러 색상을 허용하는 Stroke를 구현하는 또 다른 클래스가 있습니까? 아니면이 문제를 해결할 다른 방법이 있습니까?

답변

1

내가 JFreeChart를 가진 유사한 문제 했어 :

여기 위상을 설정하는 방법 (페이지 하단의) 점선 스트로크에 영향을 표시하는 잠재적으로 유용한 URL입니다. 나는 적절한 플롯을 확장하고 드로잉 메소드 중 일부를 오버라이드했다. 이상적인 솔루션은 아니지만 JFreeChart로 할 수있는 것에는 제한이 있습니다.

+0

나는 그것을 최후의 수단이라고 생각하지만, 완벽하게 할 수있다. – trashgod

2

필자는 AWT 또는 JFreeChart에 대한 특별한 경험이없는 Android 프로그래머이기 때문에 여기에 불이 붙을 위험이 있습니다.

두 개의 점선이 겹쳐지고 대시가 함께 표시되도록 대시 단계를 오프셋하여 두 색상을 번갈아 나타내는 점선을 만들 수 있습니까? 방금 AWT의 BasicStroke 클래스를 살펴 보았고 대시 배열을 지정할뿐만 아니라 '위상'을 지정할 수도 있습니다. http://docstore.mik.ua/orelly/java-ent/jfc/ch04_05.htm

+0

트레버 (Trevor)는 좋은 생각이지만, 불행히도 이러한 맥락에서 작동하지는 않습니다. 차트 렌더러는 단일 객체를 매개 변수로만 허용하므로 차트 렌더링 메서드를 재정의하지 않으면 구현할 수 없습니다. – GenericJon

1

BasicStroke과 함께 LinearGradientPaint을 사용해보십시오.

부록 : 날카로운 모서리를 렌더링하려면 java.awt.TexturePaint을 고려하십시오. 직교 결합을 나타내려면 java.awt.geom.Path2D을 고려하십시오.

+0

LinearGradientPaint는 항상 첫 번째 색상에서 두 번째 색상으로 점진적으로 이동하는 것을 그립니다. 그래디언트 크기를 0으로 만드는 방법이 있습니까 (즉, 색상 변경이 즉시 이루어 지도록). 그러나주기를 지연시켜 대시가 특정 길이가되도록하십시오. – GenericJon

+0

나는 정교했다. – trashgod

관련 문제