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/