Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Grapic.h>
- #include <math.h>
- const int DIMW = 900;
- using namespace grapic;
- const double rayon = 1.f;
- const double range = 0.0000001f;
- const int depth = 12;
- // the higher it is, the more squares there are !
- struct Point {
- double x;
- double y;
- };
- struct square {
- Point coord;
- double length;
- };
- square initsqr () {
- square ret;
- ret.coord.x = 1;
- ret.coord.y = 1;
- return ret;
- }
- Point coord (double x, double y) {
- Point ret;
- ret.x = x;
- ret.y = y;
- return ret;
- }
- void solve (square &sq, Point start) {
- sq.coord = start;
- sq.length = 0;
- while ((sq.coord.x)*(sq.coord.x)
- +(sq.coord.y)*(sq.coord.y) > (1+range)*(1+range)) {
- sq.coord.x -= range;
- sq.coord.y -= range;
- sq.length += range;
- }
- color(127,127,127,255);
- rectangleFill(sq.coord.x*(DIMW-10),sq.coord.y*(DIMW-10),
- (sq.coord.x+sq.length)*(DIMW-10),
- (sq.coord.y+sq.length)*(DIMW-10));
- color(255,255,255,255);
- rectangle(sq.coord.x*(DIMW-10),sq.coord.y*(DIMW-10),
- (sq.coord.x+sq.length)*(DIMW-10),
- (sq.coord.y+sq.length)*(DIMW-10));
- winDisplay();
- }
- void tree (square sq, int d = 0) {
- if (d == depth) printf("");
- else {
- square L = sq, R = sq;
- L.coord.y += sq.length;
- R.coord.x += sq.length;
- solve(L,L.coord);
- solve(R,R.coord);
- tree(L,d+1);
- tree(R,d+1);
- }
- }
- int main(int, char**) {
- winInit("Bruh",DIMW,DIMW);
- backgroundColor(0,0,0);
- color(0,0,0);
- pressSpace();
- winClear();
- color(255,255,255);
- circle(0,0,DIMW-10);
- line(0,DIMW-10,DIMW-10,DIMW-10);
- line(DIMW-10,0,DIMW-10,DIMW-10);
- square sq = initsqr();
- solve(sq,sq.coord);
- tree(sq);
- pressSpace();
- winQuit();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement