GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Receber valores em vetor e usar pra desenhar poligonos

java
Tags: #<Tag:0x00007f6106f04fb0>
#1

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
* / 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);
} /
************
* 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);
0 Likes

#2

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.

0 Likes

#3

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?

0 Likes

#4

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

0 Likes