Estou trabalhando em um aplicativo que cria primitivas gráficas usando o mouse (retas, curvas, retângulos e etc), consegui fazer a maioria, mas quando eu cria uma curva, usando a curva quadrática do Java2D ele cria uma reta ligando os pontos inicial e final, mas se eu desenho via código isso não acontece. Alguém pode me dar uma idéia de onde eu estou errando?
Você não tem de passar 3 pontos, sendo o primeiro e o terceiro os pontos extremos e o segundo o ponto de controle? Talvez você esteja esquecendo de passar o valor correto do ponto de controle.
Marky.Vasconcelos
Quais parametros voce esta passando para desenhar essa curva?
loganwlogan
Eu estou fazendo o certo passando 3 pontos, sendo o primeiro e o terceiro o início e o fim e o 2º o ponto de controle. A imagem em anexo mostra duas curvas a da esquerda eu fiz via código, e a da direita eu fiz com cliques do mouse. ela faz a curva, mas liga as extremidades com uma linha.
Pensei que ele desenhava só um segmento de reta. Você não tinha explicado que também estava fechando a curva. Só uma pergunta bem boboca. Por acaso você não está usando um switch mais ou menos assim, em que você esqueceu de pôr o break. e dessa forma acaba desenhando o segmento de reta também?
Se for isso, e se você está se esquecendo de usar o break, então ao entrar no caso “CURVA” ele vai desenhar a curva (OK) mas TAMBÉM vai desenhar a reta (já que você não pôs o “break” para evitar que ele “vaze” de um caso para o outro.
loganwlogan
Uma das primeiras coisas que eu pensei foi que eu tinha realmente esquecido um break ou coisa parecida, mas já revisei o código todo e não achei erro assim. Na verdade to preso nisso desde cedo, só espero não ser um bobeirinha daquelas que te faz perder o dia, por nada. To tentando desenha em outra área de desenho pra ver como fica.
Marky.Vasconcelos
Poste o código que voce usa pra desenhar essa parte.
loganwlogan
Bom dia Marcky, Entanglemnt e Amigos,
Consegui resolver o problema! A reta que aparecia ligando os pontos de extreminade na verdade era uma curva, onde o ponto de controle e o ponto final da curva tinham as mesmas coordenadas. O grande problema é que eu desenvolvi as outras primitivas (reta, retangulo, retangulo pelo centro, elipse e elipse pelo centro), e todas utilizam 2 cliques do mouse e a curva usa 3 cliques, o erro estava é que no segundo clique do mouse se criava uma curva onde o ponto de controle e o ponto final eram iguais, o certo criar a curva no 3º clique, se não a curva vira uma reta.