Forma interesante

Habr, hola. Este artículo no pretende ser demasiado serio, solo quiero compartir una nueva forma que descubrí. Este es un círculo, cuyo color de los puntos es igual a la suma de los cuadrados de las coordenadas del punto dado. En otras palabras, pixel_color = (pixel_x ^ 2 + pixel_y ^ 2) .toString (16).







Esta figura en sí es muy interesante, es algo así como un claro fractal de interferencia o incluso un modelo del universo que describe el micro y macrocosmos. Si bien es fácil de conseguir, no he encontrado nada igual en ninguna parte. Quizás soy un pionero. Si es así, me gustaría llamarlo tetrascopio. En el ejemplo dado, genero un tetrascopio con un radio de 1024px, el máximo que pude generar en mi máquina es un objeto con un radio de 4096px, cuya imagen pesa ~ 150 megabytes.



Este modelo es un absoluto, por lo que quiero decir que su modelo físico-matemático existe por sí mismo, mucho antes de su descubrimiento e independientemente de una persona, como forma de ser autosuficiente.



PD: recomiendo ver la imagen en una computadora a una escala del 100%- para que quede más claro qué es ella. En los comentarios, sugiero experimentar con el código, sugiriendo su descripción y el significado de la imagen o su nombre, y en general, complementando de alguna manera esta publicación, quizás con alguna información.



$(document).ready(function(){
	var R=1024; var D=2*R;
	var rgb = function(c){
		if(c.length<=6)	return c+("0".repeat(6-c.length));
		else return c.substring(0, 3)+c.substring(c.length-3);
	}
	$('body').append('<canvas id="C" width="'+(R*2)+'" height="'+(R*2)+'">');
	var canvas = document.getElementById('C');
	var ctx = canvas.getContext('2d');
	ctx.fillStyle="#ffffff00";
	ctx.fillRect(0, 0, 256, 256);
	for(var x = 0;x<D;x++) {
		for(var y = 0;y<D;y++) {					
			var X1 = R-x;
			var Y1 = R-y;
			var X2 = R+x;
			var Y2 = R+y;
			if (( x*x+y*y )   <=   R*R    ) {
				ctx.fillStyle="#"+(   rgb( (x*x+y*y).toString(16))   );
				ctx.fillRect(X1, Y1, 1, 1);
				ctx.fillRect(X1, Y2, 1, 1);
				ctx.fillRect(X2, Y1, 1, 1);
				ctx.fillRect(X2, Y2, 1, 1);
	}	}	}
});



All Articles