Forme intéressante

Habr, bonjour. Cet article ne prétend pas être trop sérieux, je veux juste partager une nouvelle forme que j'ai découverte. Il s'agit d'un cercle dont la couleur des points est égale à la somme des carrés des coordonnées du point donné. En d'autres termes, pixel_color = (pixel_x ^ 2 + pixel_y ^ 2) .toString (16).







Cette figure elle-même est très intéressante, c'est quelque chose comme une fractale d'interférence claire ou même un modèle de l'univers qui décrit le micro et le macrocosme. Bien qu'il soit facile de l'obtenir, je n'ai rien trouvé de tel nulle part. Peut-être que je suis un pionnier. Si tel est le cas, j'aimerais l'appeler un tétrascope. Dans l'exemple donné, je génère un tétrascope avec un rayon de 1024px, le maximum que j'ai pu générer sur ma machine est un objet d'un rayon de 4096px, dont une image pèse ~ 150 mégaoctets.



Ce modèle est un absolu, j'entends par là que son modèle physico-mathématique existe par lui-même, bien avant sa découverte et indépendamment d'une personne, en tant que forme d'être autosuffisante.



PS: je recommande de regarder l'image sur un ordinateur à une échelle de 100%- donc ce qu'elle est est plus clair. Dans les commentaires, je suggère d'expérimenter le code, en suggérant votre propre description et la signification de l'image ou de son nom, et en général en complétant d'une manière ou d'une autre ce post, peut-être avec quelques informations.



$(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