Pintar pixel por pixel

Ou galera!

Estou tendo a disciplina de Computação Grafica na faculdade e gostaria de saber alguma maneira de desenhar pixel por pixel na tela.
Eu sei que a classe graphics não possui tal methodo.

O que eu posso fazer a respeito?

Basta usar o método drawRect para pintar retangulos de altura e largura iguais a 1.

Outra opção é desenhar sobre um BufferedImage, que tem o método setPixel.

[quote=ViniGodoy]Basta usar o método drawRect para pintar retangulos de altura e largura iguais a 1.

Outra opção é desenhar sobre um BufferedImage, que tem o método setPixel.[/quote]

Foi exatamente oque eu fiz :smiley:

E estou usando o game loop que você mostrou no Ponto V

[quote=Mikhas]Foi exatamente oque eu fiz :smiley:

E estou usando o game loop que você mostrou no Ponto V[/quote]

Legal. Uma aplicação que dá um resultado legal, usando pontos é essa aqui:

  1. Defina 3 pontos em locais distintos da tela, de forma a formar um triângulo. Vamos chamar esses pontos de A, B e C.
  2. Sorteie 2 desses pontos;
  3. Desenhe um ponto no meio desses dois sorteados;
  4. Repita 100 mil vezes o seguinte processo:
    4.1. Sorteie um dos pontos A, B ou C;
    4.2. Desenhe um ponto que esteja no meio do ponto sorteado e do último ponto desenhado

O resultado dá uma forma bastante interessante, chamada triângulo de Sierpinsky.
É um desenho fractal e pode ser calculado infinitamente.

[quote=Mikhas][quote=ViniGodoy]Basta usar o método drawRect para pintar retangulos de altura e largura iguais a 1.

Outra opção é desenhar sobre um BufferedImage, que tem o método setPixel.[/quote]

Foi exatamente oque eu fiz :smiley:

E estou usando o game loop que você mostrou no Ponto V[/quote]
Dependendo do que você fizer, acredito que pode ficar mais rápido se você manipular diretamente o vetor no “DataBuffer” da imagem ou mexer nos pixels via “WritableRaster” usando os métodos “setDataElements”.
O ruim é que para usar assim tu quase sempre tem que ter controle e conhecimento sobre qual o “ColorModel” e “SampleModel” usado.

Inté.