• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Blog dos Moderadores

  • artigos
    43
  • comentários
    0
  • visualizações
    49435

Autores deste blog

  • jpaulino 19
  • thoga31 9
  • Rui Carlos 7
  • David Pintassilgo 3
  • brunoais 2
  • Warrior 1
  • M6 1
  • bioshock 1

[Snippet] Triângulo de Sierpinski

thoga31

553 visualizações

Mais uma "brincadeira" com gráficos avançados em Pascal - desenha o famoso Triângulo de Sierpinski através de um método semi-áleatório muito simples e com um resultado belíssimo.

Vamos festejar a mudança de plataforma com mais um snippet que eu acho ser engraçado e muito educativo :P

Mais uma brincadeira com a unit Graph... Já alguém ouviu falar do Triângulo de Sierpinski? Muito famoso entre os entusiastas da Geometria Fractal.

Querem saber como é este triângulo? Este programa calcula os pontos do triângulo segundo um método de aleatoriedade e que só falha 1~3% dos pontos - isto explicará um ou outro pixel fora do triângulo.

Enjoy! ;)

PROGRAM Sierpinski;

USES sysutils, graph;

VAR Driver, Modus : smallint;
x, y, n : real;
k : integer;

BEGIN
 try
	writeln('A desenhar o Triangulo de Sierpinski...');

	try
	   DetectGraph(Driver, Modus);
	   InitGraph(Driver, Modus, '');

	   randomize;
	   x := random;
	   y := random;

	   for k:=1 to 30000 do begin
		   n := random;

		   if (n<=1/3) then begin
			  x := x/2;
			  y := y/2;
		   end
		   else if (n>1/3) and (n<=2/3) then begin
			  x := (x+0.5)/2;
			  y := (1+y)/2;
		   end
		   else if (n>2/3) then begin
			  x := (x+1)/2;
			  y := y/2;
		   end;

		   PutPixel(round(500*x), round(500-500*y), White);
	   end

	except
		  ON ex:exception do begin
			 writeln('ERRO: ',ex.message);
			 CloseGraph;
		  end;
	end

 finally
		write('ENTER para terminar...');
		readln; // pausa
		CloseGraph;
 end;
END.

Origem: [snippet] Triângulo de Sierpinski


0


0 Comentários


Não há comentários para mostra.

Convidado
Está a comentar como guest. Se tem uma conta, por favor inicie sessão.
Adicionar um comentário...

×   Colou conteúdo com formatação.   Restaurar formatação

×   Your link has been automatically embedded.   Mostrar como ligação