Javascript Mandelbrot集旋转

Javascript Mandelbrot集旋转,javascript,math,rotation,fractals,mandelbrot,Javascript,Math,Rotation,Fractals,Mandelbrot,有一个简单的JS代码,可以呈现非常基本的Mandelbrot分形 let canvas=document.getElementsByTagName(“canvas”)[0], 画布宽度=canvas.width, 画布高度=canvas.height, ctx=canvas.getContext(“2d”); 常数maxIterations=100, 放大系数=200, panX=2, panY=1.25; 设支点=(x,y,颜色)=>{ var pointSize=1; ctx.fillSt

有一个简单的JS代码,可以呈现非常基本的Mandelbrot分形

let canvas=document.getElementsByTagName(“canvas”)[0],
画布宽度=canvas.width,
画布高度=canvas.height,
ctx=canvas.getContext(“2d”);
常数maxIterations=100,
放大系数=200,
panX=2,
panY=1.25;
设支点=(x,y,颜色)=>{
var pointSize=1;
ctx.fillStyle=颜色;
ctx.beginPath();
弧(x,y,pointSize,0,Math.PI*2,真);
ctx.fill();
}
设mandelbrot=(c,z=0)=>z^2+c;
设belongostondelbrotset=(x,y)=>{
让realComponentOfResult=x,
结果的图像成分=y;
for(设i=0;i
正文{
保证金:0;
}

您可以尝试在主循环中转换坐标,在主循环中进行缩放和平移:

 let x1 = x * Math.cos(theta) - y * Math.sin(theta)
 let y1 = x * Math.sin(theta) + y * Math.cos(theta)

 let belongsToSet = BelongsToMandelbrotSet(x1/magnificationFactor - panX, ...
 ...drawPoint(x, y, '#000')
要进一步简化此过程,请为所有类型的变换创建一个应用程序,并应用一次