Sierpinski triangle

  • 3 Replies
  • 693 Views

0 Members and 1 Guest are viewing this topic.

Offline v

  • *
  • Fractal Phenom
  • ****
  • Posts: 48
« on: September 05, 2017, 05:35:35 AM »
Testing out the code tags.  C program to draw a Sierpinski triangle of arbitrary order.

Code: [Select]
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
int x, y, i;
int s = (argc > 1) ? 1 << abs(atoi(argv[1])) : 32;
//int sgn = (argc > 1 && atoi(argv[1]) > 0) ? 1 : -1;

for(y = s; y >= 0; y--) {
for(i = 0; i <= y>>1; i++) printf(" ");
for(x = 0; x < s-y; x++) printf("%c", ((x & y) !=0 ) ? ' ' : '#');
printf("\n");
}

return 0;
}

example:
Code: [Select]
$ gcc tri.c -o tri
$ ./tri 5
                 
                #
                ##
               # #
               ####
              #   #
              ##  ##
             # # # #
             ########
            #       #
            ##      ##
           # #     # #
           ####    ####
          #   #   #   #
          ##  ##  ##  ##
         # # # # # # # #
         ################
        #               #
        ##              ##
       # #             # #
       ####            ####
      #   #           #   #
      ##  ##          ##  ##
     # # # #         # # # #
     ########        ########
    #       #       #       #
    ##      ##      ##      ##
   # #     # #     # #     # #
   ####    ####    ####    ####
  #   #   #   #   #   #   #   #
  ##  ##  ##  ##  ##  ##  ##  ##
 # # # # # # # # # # # # # # # #
 ################################


Linkback: https://fractalforums.org/programming/11/sierpinski-triangle/202/

Offline claude

  • *
  • 3f
  • ******
  • Posts: 1593
    • mathr.co.uk
« Reply #1 on: September 05, 2017, 04:31:12 PM »
Nice!

Here's a slight variant that looks better with non-square characters:

Code: [Select]
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
int x, y, i;
int s = (argc > 1) ? 1 << abs(atoi(argv[1])) : 32;
//int sgn = (argc > 1 && atoi(argv[1]) > 0) ? 1 : -1;

for(y = s-1; y >= 0; y--) {
for(i = 0; i < y; i++) printf(" ");
for(x = 0; x < s-y; x++) printf("%s", ((x & y) !=0 ) ? "  " : "##");
printf("\n");
}

return 0;
}

example:
Code: [Select]
$ ./tri 5
                               ##
                              ####
                             ##  ##
                            ########
                           ##      ##
                          ####    ####
                         ##  ##  ##  ##
                        ################
                       ##              ##
                      ####            ####
                     ##  ##          ##  ##
                    ########        ########
                   ##      ##      ##      ##
                  ####    ####    ####    ####
                 ##  ##  ##  ##  ##  ##  ##  ##
                ################################
               ##                              ##
              ####                            ####
             ##  ##                          ##  ##
            ########                        ########
           ##      ##                      ##      ##
          ####    ####                    ####    ####
         ##  ##  ##  ##                  ##  ##  ##  ##
        ################                ################
       ##              ##              ##              ##
      ####            ####            ####            ####
     ##  ##          ##  ##          ##  ##          ##  ##
    ########        ########        ########        ########
   ##      ##      ##      ##      ##      ##      ##      ##
  ####    ####    ####    ####    ####    ####    ####    ####
 ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##  ##
################################################################

Though it seems there is a bug in the forum: the "Select" link by the displayed code tag doesn't seem to function.

Offline Anon

  • *
  • Fractal Fluff
  • *****
  • Posts: 354
« Reply #2 on: September 05, 2017, 04:43:00 PM »
Though it seems there is a bug in the forum: the "Select" link by the displayed code tag doesn't seem to function.
Works for me :)

Offline claude

  • *
  • 3f
  • ******
  • Posts: 1593
    • mathr.co.uk
« Reply #3 on: September 05, 2017, 10:41:02 PM »
Works for me :)

thanks, it works for me on another computer too - strange browser-specific glitch I guess.  sorry for the noise!


xx
Interesting rotating Sierpinski triangle

Started by v on Share a fractal

1 Replies
412 Views
Last post April 06, 2018, 08:00:30 AM
by TGlad
xx
DNA molecules computing a Sierpinski triangle

Started by marcm200 on Share a fractal

0 Replies
211 Views
Last post December 13, 2019, 02:03:07 PM
by marcm200
xx
Sierpinski loop

Started by claude on Fractal Image Gallery

0 Replies
229 Views
Last post February 16, 2018, 07:59:10 AM
by claude
clip
Sierpinski Space

Started by Pikomonster on Image Threads

0 Replies
94 Views
Last post April 16, 2020, 07:21:12 AM
by Pikomonster
xx
Visit of the Sierpinski octahedron

Started by Nintendokater on Fractal movie gallery

0 Replies
116 Views
Last post February 05, 2020, 11:54:30 AM
by Nintendokater