Receber valores em vetor e usar pra desenhar poligonos

3 respostas
java
Samuel_Hana

saudações ao fórum e a todos que estão dispostos a compartilhar seus conhecimentos, estou desenvolvendo um programinha em java que desenhe um poligono na tela por um vetor e que mostre o centroide desta figura, até o momento estou tendo dificuldades na parte gráfica para plotar o grafico da figura por Nós(pontos) , qual seria o procedimento mais simples?
segue em anexo o codigo

/*************

* 7* método - desenhaEixo

* <em>/ public void desenhaEixo(Graphics g2d, double x, double y)

{

int x1= iXD(x);//chama o método iXD para transformar em Pixel

int y1 = iYD(y);

//Método Drwa line para desenhar uma linha

g2d.drawLine(centroX,centroY,x1,y1);

} /</em>************

* 8* método - desenhaSeta

* */public void desenhaSeta(Graphics g2d, double[]x,double[]y, int nPontos)

{

int[]Px,Py;

Px=new int [nPontos];

Py=new int [nPontos];

for(int i=0; i<nPontos; i++)

{

Px[i]=iXD(x[i]);

Py[i]=iYD(y[i]);
}
    g2d.drawPolyline(Px, Py, nPontos);
 } /*************
 * 9* método - desenhaapoio
 * */
 public void desenhaApoio(Graphics g2d, double x, double y)
 {
   int[]Px,Py;
   Px = new int [3];
   Py= new int [3];
 
   double [ ]xR,yR;
   xR= new double [3];//abcissa real do ponto
   yR=new double [3];//ordenada real do ponto
  //definir 3 pontos reais do apoio
  xR[0]=x+0.0;
  yR[0]=y+0.0;
  xR[1]=x-0.3;
  yR[1]=y-0.3;
  xR[2]=x+0.3;
  yR[2]=y-0.3;
  for (int i=0; i<3; i++)
  {
   Px[i]=iXD(xR[i]); 
   Py[i]=iYD(yR[i]);
   
  } 
  Polygon apoio = new Polygon(Px,Py,3);
  g2d.setColor(Color.BLACK);
  g2d.drawPolygon(apoio);
  g2d.setColor(Color.red);
  g2d.fillPolygon(apoio);

 } /*************
 * 10* método - desenhafigura
 * */public void desenhafigura(Graphics g2d, double xe , double ye, double yd, double xd)
 {
     int x1 = iXD(xe);
     int y1= iYD(ye);
      int[]xPixel, yPixel;
     xPixel= new int[x1];
     yPixel= new int [y1];
     
     int x2 = iXD(xd);
     int y2= iYD(yd);
     
     g2d.setColor(Color.BLUE);
     g2d.drawLine(x1, y1, x2, y2);

3 Respostas

ViniGodoy

O método mais simples é usar o Graphics2D, como você já vem fazendo. Você pode conferir os 4 primeiros artigos desse tutorial para ficar mais claro:
http://pontov.com.br/site/index.php/java/48-java2d

Agora, matematicamente, eu recomendaria também que você criasse uma classe para representar os pontos na forma de vetores 2D. Isso não só vai limpar bastante seu código, como simplificar a parte do cálculo dos centróides: http://pontov.com.br/site/index.php/matematica-e-fisica/132-o-uso-de-vetores-nos-jogos

Sem falar que você poderia trabalhar com um único List<Vector2> para todos os pontos do seu polígono.

Samuel_Hana

em codigo, tenho um metodo que pega os dados do arquivo int,com as coordenadas do poligono, mas nao sei como desenhar o poligono a partir desse arquivo in, entende?

ViniGodoy

Entendo. Mas não entendi onde está sua dúvida. É em fazer o desenho em si? É para ler esse arquivo?

Criado 15 de maio de 2019
Ultima resposta 17 de mai. de 2019
Respostas 3
Participantes 2