Dúvida para cirar um losango em Java 2D

7 respostas
R

Galera por favor alguém sabe como eu faço para criar um LOSANGO em java usando o objeto Polygon?
To tentando e ainda não consegui

7 Respostas

V

Use para isso o GeneralPath:
Pintando no Java 2D
O fantasma do Pacman (exemplo prático)

R

Na realidade eu preciso fazer a bandeira do brasil para isso eu ja consegui fazer o retangulo

segue o código…

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.geom.Ellipse2D;
import java.awt.geom.GeneralPath;
import java.awt.geom.Rectangle2D;

import javax.swing.JComponent;

@SuppressWarnings("serial")
public class FillComponent extends JComponent {

	public void paintComponent(Graphics g){
		
		Graphics2D g2 = (Graphics2D) g;

	      // draw a rectangle

	      double leftX = 100;
	      double topY = 100;
	      double width = 200;
	      double height = 150;

	      Rectangle2D rect = new Rectangle2D.Double(leftX, topY, width, height);
	      g2.setColor(new Color(0,146,62));
	      g2.fill(rect);
	      
	}

}

mas não consigo criar um losango…

V

Você pode:

a) Rotacionar seu sistema de coordenadas e desenhar um retângulo.
b) Usar o General Path (leia os links que já te passei).

R

eu não consigo entender o sistema de coordenadas do GeneralPath();

int xPoint[] = {10 , 40, 60 , 10};
	      int yPoint[] = {10 , 0, 0, 10};
	      GeneralPath polygon = new GeneralPath(GeneralPath.WIND_EVEN_ODD, xPoint.length);
	      polygon.moveTo(xPoint[1], yPoint[1]);
	      Polygon p = new Polygon();
	      
	      for(int index = 1; index < xPoint.length; index++){
	    	  polygon.lineTo(xPoint[index], yPoint[index]);
	      }
	      
	      polygon.closePath();

como funciona para montar um losango usando o yPoint e o xPoint não entendo como plotar os números de forma que monte o que eu quero…
pode me explicar ViniGodoy?

V

É exatamente o mesmo sistema de coordenadas que vc usou para o quadrado.

Faça o seguinte:

  1. Dê moveTo para o local onde vc vai começar a traçar o primeiro ponto.
  2. Faça um lineTo até o segundo ponto
  3. Faça um lineTo até o terceiro ponto
  4. Faça um lineTo até o quarto ponto
  5. Chame o método para fechar o path.

E então dê um fill nesse path com a cor amarela.

V

No caso do array, a coordenada (xPoint[0], yPoint[0]) referem-se ao primeiro ponto, (xPoint[1], yPoint[1]) ao segundo e assim por diante.

R

VALEUUUU!!! ViniGodoy

agora eu entendi como isso funciona, mas foi graças ao seu artigo:
http://www.pontov.com.br/site/index.php?option=com_content&view=article&id=93:uma-visao-rapida-sobre-o-java-2d&catid=48:java2d&Itemid=58

muito louco…

Criado 19 de março de 2010
Ultima resposta 19 de mar. de 2010
Respostas 7
Participantes 2