Discussion forum about PANORAMIC language

Mac, Windows & Android application development with PANORAMIC language
 
HomeFAQSearchRegisterMemberlistUsergroupsLog in
Latest topics
» Hello world.
by Mon Jun 19, 2017 1:37 am

» Biomorphes de PICKOVER
by Sun Jun 18, 2017 2:33 am

» In less than 10 lines of code
by Fri Jun 16, 2017 5:03 am

» Effect Dopler
by Fri Jun 16, 2017 3:29 am

» SuperEllipse
by Wed Jun 14, 2017 4:01 am

» Plants
by Wed Jun 14, 2017 3:38 am

» Mira's attractor
by Wed Jun 14, 2017 3:30 am

» Triangle of Sierpinski
by Wed Jun 14, 2017 3:22 am

» Esthétique polaire
by Wed Jun 14, 2017 3:16 am

» Butterfly effect : Lorenz equations
by Wed Jun 14, 2017 3:08 am

» Collision detection
by Tue Jun 13, 2017 5:09 am

» The Bees Laline Paull Epub Books
by Mon Oct 10, 2016 8:58 pm

» PANORAMIC for Mac OSX 10 is available
by Tue Aug 09, 2016 6:08 pm

» ide
by Sat Jul 16, 2016 12:27 am

» Can I change the program icon/logo in my application ?
by Thu Jul 07, 2016 3:32 am

Navigation
 Portal
 Index
 Memberlist
 Profile
 FAQ
 Search

Share | 
 

 Plants

View previous topic View next topic Go down 
AuthorMessage
papydall

avatar

Number of posts : 39
Age : 66
Localisation : TUNISIA
Registration date : 2013-03-16

PostSubject: Plants   Wed Jun 14, 2017 3:38 am

Code:

rem ============================================================================
rem                      Plants
rem                    By Papydall
rem ============================================================================
Init()
Plants()
caption 0,"Finished"
end
rem ============================================================================
SUB Init()
    dim ss : ss = 20
    dim sang1(ss), xx(ss), yy(ss)
    dim xpos, ypos
    dim counter, gen, st
    dim a$, b$, a0$, a1$
    dim k, s, s2, ang1   
    dim frw, cl, i, ang, sang, an, x, y, x1, y1, xp, yp,xp1, yp1, ran1, ran2
    dim zx, zy
    degrees
    full_space 0   
    picture 10 : width 10, width_client(0) - 100 : height 10, height_client(0) - 100
    top 10,50 : left 10,50 : 2d_target_is 10 : color 10,0,0,0
    xpos = width(10) /2 : ypos = height(10) - 100
    caption 0, "<ESC> to stop ..."
END_SUB
rem ============================================================================
SUB Plants()
    repeat
        b$ = "" : a$ = "" : a0$ = "" : a1$ = ""
        st = 0
        gen = 1 + mod(counter,13) 
        counter = counter + 1
        select gen
            case 1
                k = 6 : s = 1.5 : ang1 = 8
                A$ = "0" : A1$ = "11" : A0$ = "1##10!+0!-0"
            case 2
                k = 6 : s = 1.5 : ang1 = 8
                A$ = "0" : A1$ = "11" : A0$ = "1#+0!1#-0!0"
            case 3
                k = 5 : s = 3.0 : ang1 = 16
                A$ = "1" : A1$ = "11-#-1+0+0!+#+1-0-0!" : A0$ = "0"
            case 4     
                k = 5 : s = 3.0 : ang1 = 10
                A$ = "1" : A1$ = "1#+0!#=0!1#+1+-0!#-1-+0!" : A0$ = "0-0++0"
            case 5
                k = 5 : s = 3.0 : ang1 = 16
                A$ = "1" : A1$ = "11-#-1+0+0!+#+1-0-0!" : A0$ = "#0-0++0!"
            case 6 
                k = 4 : s = 2.5 : ang1 = 10
                A$ = "1" : A1$ = "1#+10!1#-10!1" : A0$ = "#0-0++0!"
            case 7
                k = 4 : s = 1.75 : ang1 = 10
                A$ = "1" : A1$ = "1#+1-10!1#-1+10!10" : A0$ = "#0-0++0!"
            case 8
                k = 4 : s = 3.0 : ang1 = 10
                A$ = "1" : A1$ = "11#+1-1+10!#-1+1-10!" : A0$ = "#0-0++0!"
            case 9
                k = 4 : s = 3.5 : ang1 = 10
                A$ = "1" : A1$ = "11#+1+1-#0-0++0!!0#-1-1+#0-0++0!!" : A0$ = "#0-0++0!"
            case 10
                k = 4 : s = 3.6 : ang1 = 10
                A$ = "#+1-1!#-1+1!" : A1$ = "1#-1+0!1#+1-0!0" : A0$ = "#0-0++0!"
            case 11
                k = 3 : s = 2.75 : ang1 = 8
                A$ = "1" : A1$ = "11#+10-10+10-10!1#-10+10-10+10!0" : A0$ = "0"
            case 12
                k = 3 : s = 4.0 : ang1 = 20
                A$ = "1" : A1$ = "1#-10-10-10!1#+10+10+10!1#10!" : A0$ = "0"
            case 13
                k = 4 : s = 2.0 : ang1 = 8
                A$ = "0" : A1$ = "111" : A0$ = "11#+0!#++0!#+++0!#-0!#--0!#---0!0"           
        end_select
        String_Generator()
    until counter = 13
END_SUB
rem ============================================================================
SUB String_Generator() 
    for frw = 1 to k
        cl = len(A$)
        for i = 1 to cl
            if mid$(a$,i,1) = "1"
              b$ = b$ + a1$
            else
              if mid$(a$,i,1) = "0"
                  b$ = b$ + a0$
              else
                  b$ = b$ + mid$(a$,i,1)
              end_if
            end_if
        next i
        a$ = b$ : b$ = ""
        ang = 360 / ang1
        x = 0 : y = 0 : an = 0 : cl = len(a$)
        for i = 1 to cl
            if mid$(a$,i,1) = "1"
              ran1 = rnd(1) : ran2 = rnd(1)
              s2 = s + 0.5 * (ran1-ran2) * s
              ran1 = rnd(1) : ran2 = rnd(1)
              an = an + 5.0 * (ran1-ran2)
              sang = an
              x1 = s2 * sin(an) + x : y1 = s2 * cos(an) + y
              xp = 2 * x + xpos : yp = ypos - 2 * y
              xp1 = 2 * x1 + xpos : yp1 = ypos - 2 * y1
              2d_pen_color 0,192,0 : 2d_line xp,yp,xp1,yp1
              x = x1 : y = y1
            else
              if mid$(a$,i,1) = "0"
                  zx = sin(an) : zy = cos(an)
                  x1 = zx * s + x : y1 = zy * s + y
                  xp = 2 * x + xpos : yp = ypos -2 * y
                  xp1 = 2 * x1 + xpos : yp1 = ypos - 2 * y1
                  2d_pen_color 255,128,0 : 2d_line xp,yp,xp1,yp1
                  x1 = 0.25 * zx * s + x : y1 = 0.25 * zy * s + y
                  xp1 = 2 * x1 + xpos : yp1 = ypos - 2 * y1
                  2d_pen_color 255,0,0 : 2d_line xp,yp,xp1,yp1
              else
                  if mid$(a$,i,1) = "-"
                    ran1 = rnd(1) : ran2 = rnd(1)
                    an = an - ang - 10 *(ran1-ran2) : sang = an
                  else
                    if mid$(a$,i,1) = "+"
                        ran1 = rnd(1) : ran2 = rnd(1)
                        an = an + ang + 10*(ran1-ran2) : sang = an
                    else
                        if mid$(a$,i,1) = "#"                       
                          st = st + 1 : sang1(st) = sang
                          xx(st) = x : yy(st) = y
                        else
                          if mid$(a$,i,1) = "!"
                              x = xx(st) : y = yy(st)
                              an = sang1(st)
                              sang = an
                                st = st-1
                          end_if
                        end_if
                    end_if
                  end_if
              end_if             
            end_if
            display
            if scancode = 27 then caption 0, "Stopped by user ! " :end
        next i   
    next frw       
END_SUB
rem ============================================================================
Back to top Go down
View user profile
 
Plants
View previous topic View next topic Back to top 
Page 1 of 1

Permissions in this forum:You cannot reply to topics in this forum
Discussion forum about PANORAMIC language :: Panoramic for Windows :: Source code (snippets)-
Jump to: