O meu primeiro objecto (piao)

6 respostas
B

Bem pessoal, digam-me que acham do meu primeiro objecto

import java.applet.Applet;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.GeneralPath;
import java.awt.geom.QuadCurve2D;

public class MainScreen extends Applet {

	public Color CASTANHO = new Color(150,100,0);
	public Color CASTANHO_ESCURO = new Color(75,50,0);
	private int size = 500;
	private float bottomX1 = 225, bottomX2 = 275 , bottomY = 420;
	private float bottomBicoX = 250, bottomBicoY = 450;
	
	private int topX = 225, topY = 85;
	private int top2X = size/2-35, top2Y = topY-50;
	private final GradientPaint paint = new GradientPaint(size/2,topY-50, CASTANHO, size/2, size,Color.BLACK);
	private final BasicStroke stroke = new BasicStroke (7.0F, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL);
	private final BasicStroke stroke_fino = new BasicStroke (2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL);
	private static final long serialVersionUID = 1L;
	private float curveX = 0, curveY = 125;
	
	
	public void init() {
		this.setSize(size, size);
	}

	public void paint (Graphics g) {
		Graphics2D g2 = (Graphics2D) g;
		GeneralPath piao = this.getPiao();
		GeneralPath bico = this.getBico();
		g2.setPaint(paint);
		g2.fill(piao);
		g2.setPaint(Color.BLACK);
		g2.setStroke(stroke);
		g2.draw(piao);
		g2.setPaint(Color.DARK_GRAY);
		g2.fill(bico);
		g2.setPaint(Color.BLACK);
		g2.setStroke(stroke);
		g2.draw(bico);
		g.drawLine(topX, topY, topX+50, topY);
		g2.setPaint(CASTANHO_ESCURO);
		g2.setStroke(stroke_fino);
		this.desenhaLinhas(g);
	}
	
	private void desenhaLinhas(Graphics g) {
		g.drawLine(130, topY+55, size-130, topY+55);
		g.drawLine(130, topY+160, size-130, topY+160);
		g.drawLine(160, topY+230, size-160, topY+230);
		g.drawLine(185, topY+270, size-185, topY+270);
		g.drawLine(215, topY+310, size-215, topY+310);
	}
	
	private GeneralPath getBico() {
		GeneralPath bico = new GeneralPath();
		bico.moveTo(bottomBicoX, bottomBicoY);
		bico.lineTo(bottomX1, bottomY);
		bico.lineTo(bottomX2, bottomY);
		bico.closePath();
		return bico;
	}
	
	private GeneralPath getPiao() {
		GeneralPath piao = new GeneralPath();
		
		piao.moveTo(bottomX1, bottomY);
	
		piao.quadTo(
				curveX, curveY,
				topX, topY);
	
		piao.lineTo(top2X, top2Y);
		
		piao.lineTo(size-top2X, top2Y);
	
		piao.lineTo(size-topX, topY);
	
		piao.quadTo(
				size-curveX, curveY,
				bottomX2, bottomY);
	
		piao.closePath();
		return piao;
	}
}

6 Respostas

Mikhas

Acho que ele deveria estar entre as tags CODE :smiley:

B

eu cheguei a por, mas n sei porque n deu, vou arranjalo

ViniGodoy

Não deu pq vc fechou com /quote e não /code. hehehe

ViniGodoy

Ficou excelente! Não falei que era só ter paciência e determinação? Não tem muito segredo com o GeneralPath. :slight_smile:

B

é verdade, muita paciencia mesmo lool

E

Ou então ter alguma ferramenta que permita desenhar isso, e depois converter para um programa. É meio complicado tentar acertar as coordenadas :frowning:

Criado 25 de junho de 2010
Ultima resposta 25 de jun. de 2010
Respostas 6
Participantes 4