Oi pessoal, eu ando aprender java 2D, eu uso o eclipse, mas precisava de alguma ajuda, eu infelizmente n tenho muito pratica, e gostaria de saber se por acaso alguem tenha um codigo ja feito de um piao usando o generalPath, agredicia a ajuda
Abraço pessoal
Oi. Você pode postar um desenho do que vc quer obter?
E também o código do que você já fez?
Você quer desenhar algo como isto aqui (um semicírculo mais um triângulo?)

A imagem no qual estou a tentar desenhar é essa anexada, andame a dar uma dor de cabeça, lamento, mas n estou neste momento no meu computador, estou no computado da biblioteca, seria possivel fazer um de codigo de exemplo dessa imagem?
Agradecia muito a ajuda pessoal
Abraço pessoal

Se você leu o javadoc de GeneralPath, você pelo menos consegue saber quais são os pedaços que você precisa usar? (Por exemplo, para fazer o corpo do pião você precisa usar uma ou duas ou três vezes o método quadTo ou curveTo, por exemplo? Você tem desenhado isso em algum papel milimetrado (não sei como é que se chama isso em Portugal) para facilitar você a achar as coordenadas adequadas?
A resposta é não. A gente ajuda você a fazer o seu, mas não faz para você.
Usar o GeneralPath é bem fácil. Qualquer um com um pouco de paciência faz, mesmo que seja só desenhando pequenas linhas.
Compreendo, eu infelizmente tenho que ter isso disponivel para amanha, entao poderem-me indicar os documentos adequados para cria-lo?
Agradecia
Abraço
Sim, você pode começar pelo meu site. Tem um artigo lá chamado “O fantasma do Pacman”, com link para download de um programa que desenha o fantasminha do jogo Pacman.
Ali, bastaria você alterar o trecho que usa o GeneralPath em si. O artigo explica em detalhes como o GeneralPath foi usado. Não tenha medo, o trabalho é mais braçal do que complexo.
ViniGodoy , desculpa pela pergunta ignorante :S, mas deume um erro numa linha, este:
“package br.com.pontov.ghost;”
Qual o problema?
P.S.:Obrigado pela tutorial, e o source do ghost ta muito bem explicado 
Depende, que erro deu?
Eu testei o código antes de publicar. Talvez você não tenha criado a estrutura de diretórios corretamente no Eclipse.
Eu também fiz aquele código no eclipse.
continuame a daro o erro, ate criei novo projecto, aqui ta o screen
Em src, clique com o botão direito e crie um pacote (package) br.com.pontov.ghost.
A seguir, mova os arquivos .java para esse package.
Por que é que está escrito “fantasma.br.com.pontov.ghost” ?
Bem, n parece assim tao dificil, a parte do topo, parece practicamente com um piao, mas vou preocupar depois isso, agora na laterl direita e esquerda, para elas se pdoerem coincidir, bastame so mexer com estas coordenadas.
[code]//Lateral esquerda
gp.moveTo(0, 35);
gp.lineTo(0, 100);
//Base
gp.quadTo(10, 95, 20, 100);
gp.quadTo(25, 75, 30, 100);
gp.quadTo(40, 95, 50, 100);
gp.quadTo(55, 75, 60, 100);
gp.quadTo(70, 95, 80, 100);
//Lateral direita
gp.lineTo(80, 35);
Já agora, so uma curiosidade, do teu fantasma é possivel criar um gerador aleatorio?
Pessoal, n consigo fazer com que o ponto da lateral direita chegue para o meio, o da esquerda consigo, mas a direita n, conseguem-me ajudar nisso?
o codigo da aqui
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.RenderingHints;
import java.awt.geom.Ellipse2D;
import java.awt.geom.GeneralPath;
public class Piao {
private Color color = Color.RED;
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
drawBody(g2d);
g2d.dispose();
}
public void setColor(Color color)
{
this.color = color;
}
public Color getColor()
{
return color;
}
private void drawBody(Graphics2D g2d) {
GeneralPath gp = new GeneralPath();
//Lateral esquerda
gp.moveTo(0, 35);
gp.lineTo(35, 100);
//Base
gp.quadTo(10, 100, 100,100);
//Lateral direita
gp.lineTo(80, 35);
//Topo
gp.curveTo(70, -5, 8, -5, 0, 30);
Paint oldPaint = g2d.getPaint();
GradientPaint paint = new GradientPaint(
0, 40, color,
70, 40, color.darker());
g2d.setPaint(paint);
//Pintura Piao
g2d.fill(gp);
g2d.setPaint(oldPaint);
}
}