Jump to content

Blog dos Moderadores

  • entries
    36
  • comments
    0
  • views
    57,736

Contributors to this blog

  • jpaulino 17
  • Rui Carlos 7
  • thoga31 7
  • brunoais 2
  • bioshock 1
  • Warrior 1
  • M6 1

[Snippet] Triângulo de Sierpinski


thoga31

1,692 views

 Share

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.

Em 16/05/2012 às 17:00, thoga31 disse:

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

 Share

0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.