Estilo de Polígono

6 respostas
jcvijr

Olá pessoal,

Gostaria de saber se existe alguma forma (utilizando talvez Java2D API ou JFreeChart) de definir cantos arredondados, dado um polígono (pode ou não ser convexo). Talvez setando alguma propriedade de um Graphics, sei la. Já tentei utilizar um BasicStroke:

BasicStroke(float width, int cap, int join)

onde o parâmetro join recebe JOIN_ROUND (canto fica com um raio que é metade da largura da linha, porém o efeito obtido não foi satisfatório)

Agradeço se puderem ajudar.

6 Respostas

ViniGodoy

Por que o efeito obtido não foi satisfatório?

Você chegou a mexer nos renderingHints para pedir para o Java priorizar qualidade ao invés de performance?

jcvijr

Cheguei a mecher sim e colocar antialising, porém esse BasicStroke só permite arredondar com um raio que é metade da largura da linha, e a linha que devo desenhar deve ser o mais “fina” possível. Gostaria de definir um raio de arco maior no encontro de duas linhas…

T

Na verdade, você queria definir algo que fosse não exatamente um polígono, mas uma figura contendo alternadamente segmentos de reta e arcos. É isso?

jcvijr

Exato… nos cantos ficariam pequenos arcos.

T

Pelo que estou imaginando, então você teria de fazer isso no braço.

(Como aqueles retângulos com cantos arredondados).

Você teria de ver a documentação de GeneralPath, e aprender um pouco sobre curvas de Bézier:

java.awt.geom.GeneralPath

jcvijr

Obrigado Thingol, fiz no braço mesmo usando GeneralPath, mas quebrou o galho.

Essa classe possui um método os métodos moveTo, lineTo e curveTo, que permitem intercalar linhas e arcos.

Criado 10 de janeiro de 2007
Ultima resposta 11 de jan. de 2007
Respostas 6
Participantes 3