De Micmaths sur !yt.
À la recherche du dé parfait ! Quelles sont les meilleures formes de dés pour pouvoir y disposer les nombres le plus régulièrement possible ?
L’algorithme de tracé de cercle d'Andres1 permet, pour une complexité algorithmique très réduite, de tracer des cercles en image matricielle. Cet algorithme permet de paver entièrement le plan par des cercles concentriques, sans les trous que laisse par exemple l'algorithme de tracé d'arc de cercle de Bresenham.
JavaScript
Implementation that draws a circle in HTML5 canvas (for educational purposes only; there are better ways to draw circles in canvas).
const CHANNELS_PER_PIXEL = 4; //rgba
function drawCircle (x0, y0, radius, canvas) {
var x = radius-1;
var y = 0;
var dx = 1;
var dy = 1;
var diameter = radius * 2;
var decisionOver2 = dx - diameter; // Decision criterion divided by 2 evaluated at x=r, y=0
var imageWidth = canvas.width;
var imageHeight = canvas.height;
var context = canvas.getContext('2d');
var imageData = context.getImageData(0, 0, imageWidth, imageHeight);
var pixelData = imageData.data;
var makePixelIndexer = function (width) {
return function (i, j) {
var index = CHANNELS_PER_PIXEL * (j * width + i);
//index points to the Red channel of pixel
//at column i and row j calculated from top left
return index;
};
};
var pixelIndexer = makePixelIndexer(imageWidth);
var drawPixel = function (x, y) {
var idx = pixelIndexer(x,y);
pixelData[idx] = 255; //red
pixelData[idx + 1] = 0; //green
pixelData[idx + 2] = 255;//blue
pixelData[idx + 3] = 255;//alpha
};
while (x >= y) {
drawPixel(x + x0, y + y0);
drawPixel(y + x0, x + y0);
drawPixel(-x + x0, y + y0);
drawPixel(-y + x0, x + y0);
drawPixel(-x + x0, -y + y0);
drawPixel(-y + x0, -x + y0);
drawPixel(x + x0, -y + y0);
drawPixel(y + x0, -x + y0);
if (decisionOver2 <= 0)
{
y++;
decisionOver2 += dy; // Change in decision criterion for y -> y+1
dy += 2;
}
if (decisionOver2 > 0)
{
x--;
dx += 2;
decisionOver2 += (-diameter) + dx; // Change for y -> y+1, x -> x-1
}
}
context.putImageData(imageData, 0, 0);
}
Via Cyrille Borne.
Sur YouTube.
Via diaresis, via damien (D*)
Excellent et instructif !
- "Albert se met à la politique ! Il découvre que c'est aussi une histoire de mathématiques."
- "Ou l'art de la vulgarisation pédagogique"
De Micmaths.
Sur YouTube.
Waouh impressionnant !
La magie des maths !
- "Élémentaire, les tables de multiplication ? Pas si sûr. Dans cette vidéo, vous allez les redécouvrir comme vous ne les avez encore jamais vues."