Desenhar um retangulo com 2 pontos

2 respostas
Rickgauden

Galera uma parte do meu trabalho pede para eu criar isso:

public class Ponto {

float x;

float y;

}
class Retangulo {

Ponto x,y;

}

Como vou desenhar um retangulo com 2 pontos??

2 Respostas

ViniGodoy

Isso aí é um ponto só. Dois pontos seriam 2 valores de x e dois de y.

Aí fica fácil. Os pontos representam os cantos superior esquerdo e inferior direito do retângulo.

Rickgauden
Então, utilizei essa solução: (  em C)
[code]

typedef struct Ponto Ponto; // Define Ponto como um tipo de dado
struct Ponto {              // Estrutura de Ponto, define as coordenadas dos pontos
       float x;
       float y;       
};

typedef struct Retangulo Retangulo; // Define Retangulo como um tipo de dado
struct Retangulo {                  // Estrutura de retangulo
       Ponto a,b;
};


float comprimentoDiagonalRet(Retangulo r) {
  float p1, p2,diagonal;
  p1 = (r.a.x - r.b.x) * (r.a.x - r.b.x);
  p2 = (r.a.y - r.b.y) * (r.a.y - r.b.y);
  diagonal = sqrt(p1+p2);  
  return diagonal;    
}

float perimetroRet(Retangulo r) {
  float v1,v2,v3;  
  v1 = sqrt((r.a.x - r.b.x) * (r.a.x - r.b.x));
  v2 = sqrt((r.a.y - r.b.y) * (r.a.x - r.b.x));
  v3 = 2*v1 + 2*v2;
  
  if( v3 < 0 ) {
      v3 = 2 * v3;
      return v3;
  } else {
      return v3;
    }
  
}

float areaRet(Retangulo r) {
   float v1,v2,v3;
   v1 = sqrt((r.a.x - r.b.x) * (r.a.x - r.b.x));
   v2 = sqrt((r.a.y - r.b.y) * (r.a.x - r.b.x));
   v3 = v1 * v2;  
}
Criado 22 de junho de 2011
Ultima resposta 23 de jun. de 2011
Respostas 2
Participantes 2