Dúvida com código besta

4 respostas
_

import java.awt.Point;

class Retângulo

{

int x1 = 0;

int y1 = 0;

int x2 = 0;

int y2 = 0;
Retângulo construaRetang (int x1, int y1, int x2, int y2)

{

this.x1 = x1;

this.y1 = y1;

this.x2 = x2;

this.y2 = y2;

return this;

}
Retângulo construaRetang (Point superiorEsquerdo, Point inferiorDireito)

{

x1 = superiorEsquerdo.x;

y2 = superiorEsquerdo.y;

x2 = inferiorDireito.x;

y2 = inferiorDireito.y;

return this;

}
Retângulo construaRetang (Point superiorEsquerdo, int largura, int altura)

{

x1 = superiorEsquerdo.x;

y2 = superiorEsquerdo.y;

x2 = (x1 + largura);

y2 = (y1 + altura);

return this;

}
void imprimaRetangulo ()

{

System.out.print (“Retângulo: < + x1 + , " + y1);

System.out.println (”, " + x2 + ", " + y2 + >);

}
public static void main (String args[])

{

Retângulo retang = new Retângulo ();
System.out.println ("Chamando construaRetang com coordenadas 25,25,50,50");
 retang.construaRetang (25, 25, 50, 50);
 retang.imprimaRetangulo ();
 System.out.println ("----------------------");

 System.out.println ("Chamando construaRetang com os pontos (10,10), (20,20):");
 retang.construaRetang (new Point (10,10), new Point (20,20));
 retang.imprimaRetangulo ();
 System.out.println ("----------------------");

 System.out.println ("Chamando construaRetang com os pontos (10,10), largura (50) e altura (50):");
 retang.construaRetang (new Point (10,10), 50, 50);
 retang.imprimaRetangulo ();
 System.out.println ("----------------------");

}
}

Minha dúvida é a seguinte…
No 3º método da classe Retângulo, a variável y2 não deveria ser:
y2 = (y1 - altura)? Ao invés de y2 = (y1 + altura)?

4 Respostas

S

O eixo x é igual ao sistema cartesiano, mas no y é o inverso.

O ponto A (0,0) é o canto superior esquerdo.
O ponto B (0,5) é 5 unidades abaixo do ponto A.

Entendeu? O x cresce da esquerda para direita. O y, de cima para baixo.

_

Pois é, mas se eu fizer y2= y1 + altura eu vou fazer crescer pra cima e não pra baixo, por isso minha dúvida

S

Vejamos:

y1 vale 10, e a altura vale 20.
y2 = y1 + altura, ou seja, 30.

O y aumentou —> o retângulo desce na tela.

_

Humm, claro, tem q fazer a projeção na tela, vai descendo, agora entendi.
=)

Criado 29 de abril de 2005
Ultima resposta 30 de abr. de 2005
Respostas 4
Participantes 2