Problema com Curva Quadrática

7 respostas
loganwlogan

Boa tarde Pessoal,

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?

Att

Marcelo Logan

7 Respostas

E

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.


E

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?

switch (tipo de curva) {
case CURVA:
    desenharCurva();
case RETA:
    desenharReta();
}

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.

abraços

Marcelo Logan

Criado 21 de outubro de 2010
Ultima resposta 22 de out. de 2010
Respostas 7
Participantes 3