estou fazendo um trabalho ,utlizando JComponent, que tenho que desenhar gráficos.
O.B.S - Eu prefiro utilizar JFreeChart, alé de ser mto mais bonito, é mto mais simples…porém foi especificado no trabalho a utilização apenas de component.
A variavel tamanho é para dimensionar o desenho na tela meu problema é que ao aumentar o tamanho da variavel o grafico na tela aumenta para cima e para baixo…
eu preciso que, ao aumentar o tamanho da variave, o grafico aumente apenas para cima.
Você realmente entende o que são os parâmetros que você está passando?
Uma dica, x e y são as coordenadas do topo esquerdo do seu gráfico (esquerda em x, e do topo em y).
largura e tamanho (que deveria se chamar altura) são as dimensões que seu gráfico vai crescer para a direita e para baixo.
O sistema de coordenadas tem como coordenada mínima (0,0) o canto superior esquerdo da área de desenho. Portanto, para fazer o gráfico subir, você precisará subtrair o tamanho da coordenada y.
Dá uma lida nos posts de Java 2D do meu site, que vai te ajudar um bocado. Mas a dica é sempre entender o que você está fazendo, antes de partir para a tentativa e erro. Se ainda tiver dificuldade, tente fazer os desenhos num papel milimetrado e de lá deduzir as formulas.
D
debona
Vini,
Primeiramente obrigado por responder tão rapidamente.
Alterando a coordenada y eu redireciono o gráfico na tela…
lenvando-se em consideração a sua colocação.
coordenada(50,100)
o gráfico irá aparecer em um determinado lugar, diminuindi o valor y o gráfico irá ser gerado um pouco acima.
Ainda não é isso que eu preciso…
No meu entendimento, a coordenada y deve ser mantida para que os gráficos fiquem alinhados, a coordenada x varia a medida que eu adiciono gráficos.
Então, dada uma coordenada y eu quero que meu gráfico seja sempre gerado pra cima, não para cima e para baixo
Se y continuar igual, o topo da sua barra sempre estará no mesmo lugar. Por isso aumentar a altura fará ela crescer para baixo.
Você precisa que o y da base seja igual. Para isso acontecer, vc tem que subtrair a altura da coordenada y do topo, de modo que a base sempre se manterá na mesma coordenada.
Veja:
coordenada y da base = y do topo + altura
Portanto:
y do topo = coordenada y da base - altura
D
debona
Hmmm, entendi o que você explicou porém, não consigo visualizar isto no código…
O que acontece é o seguinte…
vamos supor que eu precise criar uma reta(basenado-se no JAVA, não no plano cartesiano, rss)
para fazer a reta eu preciso de duas coordenadas Ex. (10,50) e (10,10);
Mas no fillRect eu passo apenas um x e um y.
vc tem algum exemplo ai?
Algo que possa clariar minha mente que está ficando desorientada…
obrigado
ViniGodoy
Use o método abaixo.
public void createBar(Graphics2d g, int x, int basey, int width, int height) {
int topy = basey - height;
g.fillRect(x, basey, width, height);
}
Agora é só espeficar a coordenada y da base, não do topo.