Blame onefile/gen-galaxy.c
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
#include <math.h>
|
|
Ivan Mahonin |
a5e8d6 |
#include <helianthus.h>
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
void init() {
|
|
Ivan Mahonin |
a5e8d6 |
}
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
void put(double level) {
|
|
Ivan Mahonin |
a5e8d6 |
double x = level;
|
|
Ivan Mahonin |
a5e8d6 |
double e = exp(1+level);
|
|
Ivan Mahonin |
a5e8d6 |
double l = log(1+level);
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
double angle = l*360*4;
|
|
Ivan Mahonin |
a5e8d6 |
double dist = x*2;
|
|
Ivan Mahonin |
a5e8d6 |
double radius = (1-l)*0.2;
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
int cnt = 2;
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
saveState();
|
|
Ivan Mahonin |
a5e8d6 |
rotate(angle);
|
|
Ivan Mahonin |
a5e8d6 |
for(int i = 0; i < cnt; ++i) {
|
|
Ivan Mahonin |
a5e8d6 |
rotate(360.0/cnt);
|
|
Ivan Mahonin |
a5e8d6 |
saveState();
|
|
Ivan Mahonin |
a5e8d6 |
translate(dist, 0);
|
|
Ivan Mahonin |
a5e8d6 |
circle(0, 0, radius);
|
|
Ivan Mahonin |
a5e8d6 |
restoreState();
|
|
Ivan Mahonin |
a5e8d6 |
}
|
|
Ivan Mahonin |
a5e8d6 |
restoreState();
|
|
Ivan Mahonin |
a5e8d6 |
}
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
void draw() {
|
|
Ivan Mahonin |
a5e8d6 |
double w = windowGetWidth();
|
|
Ivan Mahonin |
a5e8d6 |
double h = windowGetHeight();
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
saveState();
|
|
Ivan Mahonin |
a5e8d6 |
noStroke();
|
|
Ivan Mahonin |
a5e8d6 |
fill(COLOR_BLACK);
|
|
Ivan Mahonin |
a5e8d6 |
translate(w/2, h/2);
|
|
Ivan Mahonin |
a5e8d6 |
zoom(100);
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
int cnt = 100;
|
|
Ivan Mahonin |
a5e8d6 |
for(int i = 0; i < cnt; ++i)
|
|
Ivan Mahonin |
a5e8d6 |
put((i+1)/(double)cnt);
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
restoreState();
|
|
Ivan Mahonin |
a5e8d6 |
}
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
|
|
Ivan Mahonin |
a5e8d6 |
int main() {
|
|
Ivan Mahonin |
a5e8d6 |
windowSetResizable(TRUE);
|
|
Ivan Mahonin |
a5e8d6 |
windowSetVariableFrameRate();
|
|
Ivan Mahonin |
a5e8d6 |
windowSetInit(&init);
|
|
Ivan Mahonin |
a5e8d6 |
windowSetDraw(&draw);
|
|
Ivan Mahonin |
a5e8d6 |
windowRun();
|
|
Ivan Mahonin |
a5e8d6 |
return 0;
|
|
Ivan Mahonin |
a5e8d6 |
}
|