То что вы увидите сегодня, не поддается никакому описанию. Это просто надо видеть.
Ну вот и всё. Все всё увидели и остались счастливы. Затмение Солнца, конец СВЕТА и прочие приколы Вселенной.
Ну вот и всё. Все всё увидели и остались счастливы. Затмение Солнца, конец СВЕТА и прочие приколы Вселенной.
#include "tb.h" #include <math.h> App* app; float phase = 0; int gray(int g) { if (g < 0) g = 0; else if (g > 255) g = 255; return g + g*256 + g*65536; } void circle(float x, float y, int rad) { for (int i = -rad; i < rad; i++) for (int j = -rad; j < rad; j++) { int r = i*i + j*j; if (r < rad*rad) { int b = app->point(x + j, y + i) & 255; int k = 100 + rad*16 - r; if (k < 0) k = 0; app->pset(x + j, y + i, gray(b + k)); } } } void render() { app->cls(0); srand(1); // Рисовать звездное небо for (int i = 0; i < 512; i++) { int x = rand() % 640; int y = rand() % 400; int cl = rand() % 256; app->pset(x, y, gray(cl)); } // Солнце и его изменчивость circle(320, 200, 50); circle((320. + 6.*sin(1.0*phase)), 200. + 2.*cos(1.0*phase), 55); circle((320. - 4.*sin(1.2*phase)), 200. - 3.*cos(0.9*phase), 55); circle((320. + 2.*sin(1.1*phase)), 200. - 5.*cos(1.2*phase), 55); // Симулятор Луны for (int i = -50; i < 50; i++) for (int j = -50; j < 50; j++) { if (i*i + j*j < 31*31) { app->pset(320 + j, 200 + i, 0); } } phase += 0.05; } int main(int argc, char* argv[]) { app = new App(); while (app->main()) render(); return app->destroy(); }