#1 01-12-2021 22:20:06

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Фрактал Мандельброта на VGA мониторе.

#include <stdio.h>
#include "fabgl.h"
fabgl::VGAController DisplayController;
fabgl::Canvas        canvas(&DisplayController);
void setup()
{
Serial.begin(115200);
DisplayController.begin();
DisplayController.setResolution(VGA_640x480_60Hz) ;
canvas.setGlyphOptions(GlyphOptions().FillBackground(false).DoubleWidth(2));
canvas.clear();
}
int changed;
double scale = 1./128;
double cx = -.6, cy = 0;
void mandel(int skip) {
  int width = 900;
  int height = 600;
  int iter, max_iter = 256;
  double x, y, zx, zy, zx2, zy2;
  for (int i = 0; i < height; i += skip) {
    y = (i - height/2) * scale + cy;
    for (int j = 0; j  < width; j += skip) {
      x = (j - width/2) * scale + cx;
      zx = hypot(x - (double).25, y);
      if (x < zx - 2 * zx * zx + (double).25) continue;
      if ((x + 1)*(x + 1) + y * y < 1/16) continue;

      zx = zy = zx2 = zy2 = 0;
      for (iter = 0; iter < max_iter && zx2 + zy2 < 4; iter++) {
        zy = 2 * zx * zy + y;
        zx = zx2 - zy2 + x;
        zx2 = zx * zx;
        zy2 = zy * zy;
      }
      if (iter < max_iter) {     
canvas.setPixel(j-150,i-90,RGB888(5,iter*295,5));
               if (skip < 2) {   int16_t tx, ty;
                      }
      }
    }
  }
}
void loop()
{
 static int resolution=5;     
  if (resolution) mandel(resolution--);
 Serial.println(resolution);
if (resolution==0) ;
}

Не в сети

#2 01-12-2021 22:21:24

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: Фрактал Мандельброта на VGA мониторе.

16383720502027272453113253857716.jpg

Не в сети

#3 02-12-2021 00:07:06

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: Фрактал Мандельброта на VGA мониторе.

16383783699067660201770773146632.jpg

Не в сети

Подвал раздела

Работает на FluxBB (перевод Laravel.ru)