Dica Desenho Vetorial

3 respostas
C

olá, gostaria de saber como posso fazer mapa fazer desenhos vetoriais no java utilizando cordenadas como

-51.05881,-21.39818
-51.05408,-21.40436
-51.03977,-21.40662
-51.03432,-21.40828
-51.02596,-21.41998
-51.02560,-21.42588
-51.01988,-21.42957
-51.00324,-21.43860
-50.99221,-21.43672
-50.97775,-21.45224
-50.96777,-21.47389
-50.96994,-21.47841

sei que com paintcomponent eu posso fazer com valores inteiros, por já usei mas e com valores reais eu não faço ideia, alguém tem uma solução?

obrigado

3 Respostas

T

transforme o valor real em inteiro =]

-51.05881,-21.39818 -51.05408,-21.40436 -51.03977,-21.40662 -51.03432,-21.40828 -51.02596,-21.41998 -51.02560,-21.42588 -51.01988,-21.42957 -51.00324,-21.43860 -50.99221,-21.43672 -50.97775,-21.45224 -50.96777,-21.47389 -50.96994,-21.47841

é só vc multiplicá-los por 10000, que daria

-5105881,-2139818 -5105408,-2140436 -5103977,-2140662 -5103432,-2140828 -5102596,-2141998 -5102560,-2142588 -5101988,-2142957 -5100324,-2143860 -5099221,-2143672 -5097775,-2145224 -5096777,-2147389 -5096994,-2147841

caso estes valores sejam muito grandes, e provavelmente serão, já q o paintComponent trabalha com pixels e geralmente as areas de desenho possuem no máximo 800x600px, ao inves de multiplicar por 10000, muliplique por 10 e use a função Math.round(), que arredonda para um valor inteiro

-510,-213 -510,-214 -510,-214 -510,-214 -510,-214 -510,-214 -510,-214 -510,-214 -509,-214 -509,-214 -509,-214 -509,-214

e assim por diante, se ficar com pouca precisão, multiplique o valor por 2 ou 3 antes de usar a função Math.round…

C

vlw, alguém tem mais alguma dica?

ViniGodoy

As classes de desenho do Java usam precisão de float ou de double. Dê uma olhada no artigo Pintando no Java2D, para mais detalhes, e em o fantasma do Pacman para um exemplo prático.

Criado 23 de janeiro de 2010
Ultima resposta 25 de jan. de 2010
Respostas 3
Participantes 3