Polygons para forma triangulo

Oi gente,
Tenho um codigo sobre como desenhar Poligonos, só que não fica muito claro como é feita a marcação desses poligonos. Por exemplo, em

int xValues3 [] = {120, 140, 150, 190};
int yValues3 [] = {40, 70, 80,60};
g.fillPolygon(xValues3, yValues3, 4);

O 4 quer dizer que serão traçados quatro pontos e portanto quatro linhas, mas o vetor das coordenadas eu não compreendo como faz, pois gostaria de transformar esse Polygon em um triangulo equilatero!!!

abçs,

Você sabe desenhar um triângulo equilátero em um sistema de coordenadas x / y?
Pegue um papel quadriculado ou milimetrado, desenhe esse triângulo, e meça quais são as coordenadas.
Depois de pegar as coordenadas, você entra com os 3 valores, e usa o tal método.

[quote=entanglement]Você sabe desenhar um triângulo equilátero em um sistema de coordenadas x / y?
Pegue um papel quadriculado ou milimetrado, desenhe esse triângulo, e meça quais são as coordenadas.
Depois de pegar as coordenadas, você entra com os 3 valores, e usa o tal método. [/quote]

Mas é só fazer algumas contas.

É como se fosse uma regra de três.

Lembre-se que o canto superior esquerdo do seu retângulo onde você vai desenhar é a posição 0, 0, e as coordenadas apontam para baixo e para a direita, em vez de apontarem para cima e para a direita.

Oi,
HELP! urgente…
Tá muito apurado esse meu trabalho, mas agora que fiz do jeito que vc me falou já tenho o triangulo e uma versão v-zero, mas preciso que o triangulo fica contido dentro da tareadesenho2 (TextArea)
Pode ajudar?

import javax.swing.*;
import javax.swing.border.Border;
import java.beans.*;
import java.awt.*;
import java.awt.event.*;
import java.io.Serializable;

public class JogoCoal1 extends JFrame 
implements ActionListener, WindowListener, Serializable {

	private static final long serialVersionUID = 1L;
	
	private JMenuBar barraMenu;
	private JMenu menuJogo;
	private JMenuItem itSobre;
	private JMenuItem itConfigs;
	private JMenuItem itEncerrar;

	private JLabel lpreconfig = new JLabel("Pré-configurações");
	
	String sdescr = ""; 
	
	private JButton bgerconfig = new  JButton ("Gerar Configurações Iniciais");
	
	private JLabel lclickjog = new JLabel("Click em cada jogador para definir a Área de Atuação no Triângulo");
	
	private JButton bjogador1;
	private JButton bjogador2;
	private JButton bjogador3;
	
	// lembrar de por drawRect, drawString para cada jogador e cor no retangulo
		
	private JLabel lformacord = new JLabel("Opções de Acordo: ");
	
	private JLabel ljog12 = new JLabel("Jogador 1 com Jogador 2: ");
	private JLabel lregimput1 = new JLabel("Registro de Imputações: ");
	
	private JLabel lcoord_12 = new JLabel("Enviar posição para o jogador 1");
	// Campo default não-editável
	private JTextField tpos12_X = new JTextField(5);
	// Combobox para jogador 1
	private JComboBox listaA;
	private String opcoes12_Y[]= {"0", "1", "2", "3", "4", "5", "6"}; 
	// Campo para o valor calculado
	private JTextField tpos12_Z = new JTextField(5);
	
	private JLabel lcoord_21 = new JLabel("Enviar posição para o jogador 2");
	// Combobox para jogador 2
	private JComboBox listaB;
	private String opcoes21_X[]= {"1", "2", "3", "4", "5", "6", "7"}; 
	// Campo default não-editável
	private JTextField tpos21_Y = new JTextField(5);
	// Campo para o valor calculado
	private JTextField tpos21_Z = new JTextField(5);

	private JLabel ljog13 = new JLabel("Jogador 1 com Jogador 3: ");
	private JLabel lregimput2 = new JLabel("Registro de Imputações: ");
	private JLabel lcoord_13 = new JLabel("Enviar posição para o jogador 1");
	
	// Campo default não-editável
	private JTextField tpos13_X = new JTextField(5);
	// Combobox para jogador 1 de novo
	private JComboBox listaC;
	private String opcoes13_Y[]= {"0","1", "2", "3", "4", "5", "6"}; 
	// Campo para o valor calculado
	private JTextField tpos13_Z = new JTextField(5);
	
	private JLabel lcoord_31 = new JLabel("Enviar posição para o jogador 3");
	// Combobox para jogador 3 de novo
	private JComboBox listaD;
	private String opcoes13_X[]= {"1", "2", "3", "4", "5", "6", "7"}; 
	// Campo para o valor calculado
	private JTextField tpos31_Y = new JTextField(5);
	// Campo default não-editável
	private JTextField tpos31_Z = new JTextField(5);
	
	private JLabel ljog23 = new JLabel("Jogador 2 com Jogador 3: ");
	private JLabel lregimput3 = new JLabel("Registro de Imputações: ");
	private JLabel lcoord_23 = new JLabel("Enviar posição para o jogador 2");
	
	// Combobox para jogador 2 de novo
	private JComboBox listaE;
	private String opcoes23_X[]= {"1", "2", "3", "4", "5", "6", "7"}; 
	// Campo default não-editável
	private JTextField tpos23_Y = new JTextField(5);
	// Campo para o valor calculado
	private JTextField tpos23_Z = new JTextField(5);
	
	
	private JLabel lcoord_32 = new JLabel("Enviar posição para o jogador 3");
	// Campo para o valor calculado
	private JTextField tpos32_X = new JTextField(5);
	// Combobox para jogador 3 de novo
	private JComboBox listaF;
	private String opcoes32_Y[]= {"0" , "1" , "2", "3", "4", "5", "6"}; 
	// Campo default não-editável
	private JTextField tpos32_Z = new JTextField(5);
	
	private JLabel lhistorico = new JLabel("Histórico de Jogadas");
		
	private JLabel ltriang_1 = new JLabel("1");
	private JLabel ltriang_2 = new JLabel("2");
	private JLabel ltriang_3 = new JLabel("3");
		
	private JLabel lvertice1 = new JLabel("(1, 6, 1)");
	private JLabel lvertice2 = new JLabel("(1, 0, 7)");
	private JLabel lvertice3 = new JLabel("(7, 0, 1)");
	
	private JLabel limput;
	private JLabel ldesenho;
	private JTextArea tareadesenho2;
	private Border borda, borda2;
		
	JPanel painel   = new JPanel();
	JPanel p1       = new JPanel();
	JPanel p2       = new JPanel();
	JPanel p3       = new JPanel();
	JPanel p4       = new JPanel();
	JPanel p5       = new JPanel();
	JPanel p6       = new JPanel();
	JPanel p7       = new JPanel();
	JPanel p8       = new JPanel();
	JPanel p9       = new JPanel();
	JPanel p10      = new JPanel();
	JPanel p11     = new JPanel(new FlowLayout(FlowLayout.CENTER));
	JPanel p12      = new JPanel();
	JPanel p13      = new JPanel();
	JPanel p15      = new JPanel(new BorderLayout());
	JPanel p21      = new JPanel(new BorderLayout());
		
	public JogoCoal1(String JogoCoal1){
			
	   super(JogoCoal1);
	// Barra de Menu	
		barraMenu = new JMenuBar();
		menuJogo = new JMenu("Jogo");
		menuJogo.setMnemonic('J');
		itSobre = new JMenuItem("Sobre...");
		itSobre.setMnemonic('S');
		setJMenuBar(barraMenu);
	
		itSobre.addActionListener(
		  new ActionListener() {
			public void actionPerformed(ActionEvent e)
			{				
				JOptionPane.showMessageDialog(JogoCoal1.this, 
					"É um jogo baseado num triângulo equilátero levando-se em consideração\nos critérios de conjunto vazio e superaditividade identificados no\nconceito de solução Core", 
					"Sobre...", JOptionPane.PLAIN_MESSAGE);
			}
		  }
		);
		menuJogo.add(itSobre);
		
		itConfigs = new JMenuItem("Gerar Configurações Iniciais");
		itConfigs.setMnemonic('G');
		itConfigs.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent e) {
						System.exit(0);
					}
				}
		);
		menuJogo.add(itConfigs);
		barraMenu.add(menuJogo);
				
		itEncerrar = new JMenuItem("Sair do Jogo");
		itEncerrar.setMnemonic('r');
		itEncerrar.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent e) {
						System.exit(0);
					}
				}
		);
		menuJogo.add(itEncerrar);
		barraMenu.add(menuJogo);
				
		sdescr += "Três empresas representadas pelos jogadores Arthus, Yan e Chris estão em negociação para juntas implementarem" +
				  "\num projeto que trará benefícios comuns aos três participantes. As três empresas possuirão oito possíveis "   +
				  "\nresultados. Tem-se a indicação de que uma negociação sem jogadores não gera ganho e que sozinhos eles não "  + 
				  "\nsão capazes de implementar o projeto. A solução escolhida para o jogo possui as características definidas "  +
				  "\npor von Neumann e Morgenstern características essas descritas nos axiomas de conjunto vazio e de superaditividade";
		
		Icon bug1 = new ImageIcon("bug1.gif");
		bjogador1 = new JButton("<<< Jogador Arthus >>>", bug1);
		bjogador1.setHorizontalTextPosition(SwingConstants.CENTER);
		bjogador1.setVerticalTextPosition(SwingConstants.BOTTOM);
		bjogador1.setRolloverIcon(bug1);
		bjogador1.addActionListener(this);
		
		Icon bug2 = new ImageIcon("bug2.gif");
		bjogador2 = new JButton("<<< Jogador Yan >>>", bug2);
		bjogador2.setHorizontalTextPosition(SwingConstants.CENTER);
		bjogador2.setVerticalTextPosition(SwingConstants.BOTTOM);
		bjogador2.setRolloverIcon(bug2);
		bjogador2.addActionListener(this);
		
		Icon bug3 = new ImageIcon("bug1.gif");
		bjogador3 = new JButton("<<< Jogador Chris >>>", bug3);
		bjogador3.setHorizontalTextPosition(SwingConstants.CENTER);
		bjogador3.setVerticalTextPosition(SwingConstants.BOTTOM);
		bjogador3.setRolloverIcon(bug3);
		bjogador3.addActionListener(this);
				  
	/*	lcoord_12.setAlignmentX(JComponent.CENTER_ALIGNMENT);
		lista1 = new JComboBox(opcoes1);
		lista1.setMaximumRowCount(7);
		lista1.addActionListener(this);*/
		
		 tareadesenho2 = new JTextArea(48, 30);
		 tareadesenho2.setEditable(false);
		 borda2 = BorderFactory.createLineBorder(Color.blue);
		 tareadesenho2.setBorder(borda2);
		 tareadesenho2.setLineWrap(true);
		 tareadesenho2.setEnabled(false);
		 
		 p5.setLayout(new BoxLayout(p5, BoxLayout.Y_AXIS));
		 p5.add(tareadesenho2);
		 p21.add(p5, "West");
			
		// define os gerenciadores de layout de cada panel
		
		JPanel jmain = new JPanel(); // Principal que contem todos
		jmain.setBackground(Color.LIGHT_GRAY);
		jmain.setLayout(new BorderLayout());
		
		p11.add(bjogador1);
		p11.add(bjogador2);
		p11.add(bjogador3);
		
		p15.add(p11);
		
		jmain.add(p15, "North");
		jmain.add(p21, "Center");
	//	jmain.add(p15, "South");
				
		setContentPane(jmain);
		setVisible(true);
		setSize(650, 650);
				
	}
	
	public void paint(Graphics g) {  
	     
		 super.paint(g);
            
         // Descobre a metade horizontal e a metade vertical  
         int meioHor = 195;  
         int meioVer = 235;  
   
         // Desenha o triangulo na parte inferior da janela da JTextArea  
           
         g.setColor(Color.red);  // lado esquerdo
         g.drawLine(meioHor, meioVer, 30, 471 - 30);  
         g.setColor(Color.black);  
   
         g.setColor(Color.green);  
         g.drawLine(30, 471 - 30, 390 - 30, 471 - 30);// base do triangulo  
         g.setColor(Color.black);  
   
         g.setColor(Color.blue);  // lado direito
         g.drawLine(meioHor, meioVer, 390 - 30, 471 - 30);  
         g.setColor(Color.black);  
         repaint();  
     } 
	 
	public void actionPerformed(ActionEvent event) {
		Object e = event.getSource();
		if(e == bjogador1)
			bjogador1.setBorder(BorderFactory.createLineBorder(Color.red));
		if(e == bjogador2)
			bjogador2.setBorder(BorderFactory.createLineBorder(Color.blue));
		if(e == bjogador3)
			bjogador3.setBorder(BorderFactory.createLineBorder(Color.green));

	}

	
	public void windowActivated(WindowEvent ev) {}
	public void windowClosed(WindowEvent ev) {}
	public void windowClosing(WindowEvent ev) {}
	public void windowDeactivated(WindowEvent ev) {}
	public void windowDeiconified(WindowEvent ev) {}
	public void windowIconified(WindowEvent ev) {}
	public void windowOpened(WindowEvent ev) {}

	
	public static void main(String args[])
	{
		JogoCoal1 app = new JogoCoal1("Jogo Coalizacional entre Três Empresas!");
		
		app.addWindowListener(
				new WindowAdapter(){
					public void windowClosing(WindowEvent e)
					{
						System.exit(0);
					}
				}
			);
	}


}

muito obrigada!

Se eu conseguisse usar o mouseClick no triangulo, da linha 33 até 97 não precisaria pois esse controle de marcar os pontos da reta poderiam ser feitos com o mouse!!!

sds