added chaos / iterative algorithm

git-svn-id: svn://anubis/misc/sierpinski-gtk@250 bd8a9e45-a331-0410-811e-c64571078777
This commit is contained in:
josh 2010-10-21 21:09:27 +00:00
parent 78734bad16
commit ba473756ff
2 changed files with 20 additions and 3 deletions

View File

@ -1,4 +1,5 @@
#include <stdlib.h> /* rand() */
#include <GL/gl.h>
#include <GL/glu.h>
@ -32,11 +33,22 @@ void SierpinskiDA::regenerate(int npts)
gl_begin();
glNewList(m_dl, GL_COMPILE);
glBegin(GL_LINE_LOOP);
glBegin(GL_POINTS);
for (int i = 0; i < 4; i++)
double pt[3];
double r = rand() / RAND_MAX;
for (int i = 0; i < 3; i++)
{
glVertex3fv(pts[i]);
pt[i] = pts[0][i] + r * pts[1][i] - pts[0][i];
}
for (int i = 0; i < npts; i++)
{
glVertex3dv(pt);
int pt_idx = rand() & 0x3;
for (int j = 0; j < 3; j++)
{
pt[j] = (pt[j] + pts[pt_idx][j]) / 2.0;
}
}
glEnd();

View File

@ -1,4 +1,7 @@
#include <time.h> /* time() */
#include <stdlib.h> /* srand() */
#include <iostream>
#include <gtkmm/main.h>
@ -33,6 +36,8 @@ int main(int argc, char * argv[])
}
}
srand(time(NULL));
Gtk::Window mw;
mw.set_default_size(400, 420);