Caros amigos,

Preciso montar uma applet que seja uma area para desenho,
(matriz de pontos) de 0 a 255 na horizontal e vertical, no qual
X e Y sejam iguais ao X e Y cartesiano (posicao 0,0 no canto
inferior esquerdo). Preciso implementar tamb�m as primitivas
PutPixel(x,y,cor), Line(xi,yi,xf,yf,cor) e GetPixel(x,y) que dever�
retornar a cor do ponto.

J� consegui implementar os comandos PutPixel e Line, e n�o
estou conseguindo implementar o GetPixel, utilizando o
PixelGrabber, tamb�m tenho d�vidas quanto a forma que eu
utilizei para desenvolver o programa, aceito qualquer cr�tica
construtiva que me ajude a melhorar esses processos.

Tenho que entregar isso at� quarta feira, possuo pouca
documenta��o e, infelizmente, n�o consegui nenhuma ajuda
da lista em duas tentativas anteriores. Acredito que seja uma
coisa "simples" de resolver, mas como "ainda" tenho pouco
conhecimento e o tempo � curto estou solicitando ajuda
mais uma vez. Por favor me deem uma luz!!!

Em Delphi � t�o simples que fico pensando se eu n�o estou
"exagerando" um pouco e codificando um monte de bobagens
desnecess�rias em Java.

Veja um exemplo em Delphi:

  Image.Canvas.Pen.Color:=clred; // seleciona a cor do lapis
  Image.Canvas.MoveTo(20,20); // Manda o lapis para uma posicao
  Image.Canvas.LineTo(150,150); // risca uma linha ate a coordenada final
  Image.Canvas.Pixels[150,75]:=clblack; // seta um pixel com uma cor
determinada
  label1.font.color:=Image.Canvas.Pixels[150,50]; // pega a cor de um pixel


C�digo fonte do Grafico.java:

import java.applet.*;
import java.awt.*;
import java.awt.image.*;

public class Grafico extends Applet {
  public static int xoffset=255;
  public static int yoffset=255;
  public static Image i;
  public static Graphics g;

  public void paint(Graphics g) {
    Color c;

    g.drawString("PAINT", 0, 10);

    Grafico.PutPixel(g,50,100,Color.blue);
    Grafico.Line(g,25,25,200,150,Color.green);
    Grafico.Line(g,45,45,220,170,Color.green);
    c=Grafico.GetPixel(g,50,100);
    g.setColor(Color.green);
    if (c==Color.blue) g.drawString("AZUL", 0, 30);
    else               g.drawString("indefinido", 0, 30);
  }

  public static void PutPixel(Graphics g, int x, int y, Color c) {
    g.setColor(c);
    g.drawLine(x,Grafico.yoffset-y,x,Grafico.yoffset-y);
  }

  public static void Line(Graphics g, int x1, int y1, int x2, int y2, Color
c) {
    g.setColor(c);
    g.drawLine(x1,Grafico.yoffset-y1,x2,Grafico.yoffset-y2);
  }

  public static Color GetPixel(Graphics g, int x, int y) {
    g.drawString("GETPIXEL", 0, 20);
    Color c=Color.black;
    int pixels[]=new int[0];
    PixelGrabber pg = new PixelGrabber(i,x,y,1,1,pixels,0,0);
    try {
      pg.grabPixels();
    }
    catch (InterruptedException e) {
      g.drawString("Erro:"+e, 0, 30);
      return(c);
    }
    if ((pg.status() & ImageObserver.ABORT) != 0) {
      g.drawString("Erro ", 0, 30);
      return(c);
    }
    return(c);
  }
}

Outra coisa: eu n�o queria passar de parametro o Graphics g, mas
de qualquer outra forma as rotinas n�o funcionam.

N�o parece ser um programa complexo, mas n�o est� funcionando.

Aceito qualquer colabora��o,

Obrigado.

[]'s

Robert
mailto:[EMAIL PROTECTED]

* Para n�o receber mais e-mails desta lista envie um e-mail para 
[[EMAIL PROTECTED]]
e no corpo do email escreva [unsubscribe <seu-email>] ou acesse 
http://apoio.cits.br:8080/guest/RemoteListSummary/javabr
Veja as mensagens antigas em http://www.mail-archive.com/javabr%40cits.br/

Responder a