Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.04 KB | None | 0 0
  1. STEPS = 71
  2. SHOW_COUNT = False
  3. SHOW_FLUX = True
  4. alpha_1 = 10 # branching angle - straigh segment #
  5. alpha_2 = 32 # branching angle - lateral segment #
  6. lbda = 0.7 # default flux portion flowing into the main segment #
  7. v_th = 5.0 # trudnosc przejscia sygnalu dalej? #
  8. eta = 0.89
  9. sigma_0 = 7 # CHANGE 7 TO 17 #
  10. LEN = 1
  11. ROTATE = False
  12.  
  13. ignore: +-/
  14. # colour=1 for neutral, 2 for terminals down, 3 for flux up#
  15. color = [ 1, 3, 2]
  16.  
  17. derivation length: STEPS
  18. Axiom: N(1)I(0,2,0,1)A
  19.  
  20. # A #
  21. # I(b,m,v,c) #
  22.  
  23. # b - Type - 0=base, 1=major, 2=minor #
  24. # m - MType - 0=normal 1=flux up 2=terminals down #
  25. # v - Flux - Flux through the internode #
  26. # c - TerminalsSupported by this internode #
  27. # First branch at any node is dominant #
  28.  
  29. production:
  30.  
  31. N(k) < I(b,m,v,c) :
  32. # terminal numbers reached base; start flux moving up #
  33. global ROTATE
  34. if b==0 and m==2 :
  35. flux= sigma_0*(2**((k-1)*(eta**k)))
  36. print (ROTATE)
  37. if ROTATE == False:
  38. ROTATE = True
  39. produce -(180)[;(3)+(90)F(0.03*flux)][;(3)-(90)F(0.03*flux)]I(b,1,flux,c) #korzen lewy, prawy i odbicie#
  40. else :
  41. produce [;(3)+(90)F(0.03*flux)][;(3)-(90)F(0.03*flux)]I(b,1,flux,c) #korzen lewy, prawy i odbicie#
  42.  
  43. N(k) > I(b,m,v,c) : # zwiekszanie poziomu drzewa?? #
  44. if b==0 and m==2 :
  45. produce N(k+1)
  46.  
  47. I(b,m,v,c) < A :
  48. # flux reaching apices #
  49. # branch if sufficient flux #
  50. # note that this starts sending the terminal counting message down #
  51. if m==1 and v>v_th : # sprawdza czy sygnal ma wystarczajaca moc by tworzyc nowe galezie - tutaj tak #
  52. produce [-(alpha_2)I(2,2,v*(1-lbda),1)A]+(alpha_1)I(1,2,v*lbda,1)B # w kwadratowym odchyla boczne galezie prawa, poza odchyla glowna #
  53.  
  54. I(b,m,v,c) < B :
  55. if m==1 and v>v_th :
  56. produce [+(alpha_2)I(2,2,v*(1-lbda),1)B]-(alpha_1)I(1,2,v*lbda,1)A # lewa , dzieki temu ze glowna raz + raz - to taki pogiety ten pien jest#
  57.  
  58. I(b,m,v,c) > A :
  59. # Reset the internode message state #
  60. # and if the apex didn't branch start terminal down message #
  61. if m==1 and v <= v_th : # sprawdza czy sygnal ma wystarczajaca moc by tworzyc nowe galezie - tutaj nie #
  62. produce I(b,2,v,c)
  63.  
  64. I(b,m,v,c) > B :
  65. if m==1 and v <= v_th :
  66. produce I(b,2,v,c)
  67.  
  68. I(b_l,m_l,v_l,c_l) < I(b,m,v,c) :
  69. # upward movement of flux #
  70. if m_l==1 :
  71. if b==1 :
  72. produce I(b,m_l,v_l-v_l*(1-lbda)*((c_l-c)/c),c)
  73. elif b==2 :
  74. produce I(b,m_l,v_l*(1-lbda)*(c/(c_l-c)),c)
  75. elif m_l==2 and m==2 :
  76. produce I(b,0,v,c)
  77.  
  78. I(b,m,v,c) > [I(b_2,m_2,v_2,c_2)]I(b_1,m_1,v_1,c_1) :
  79. # downward movement of terminal stats #
  80. if m==0 and m_1==2 and m_2==2 :
  81. produce I(b,2,v,c_1+c_2)
  82.  
  83. I(b,m,v,c) :
  84. # reset message once transferred #
  85. if m==1 :
  86. produce I(b,0,v,c)
  87.  
  88. homomorphism:
  89.  
  90. I(b,m,v,c) :
  91. if SHOW_COUNT:
  92. produce _((c*0.01)**0.7);(color[m])F(LEN)@c[|f(LEN/3.)^(90)f(LEN)&(90);(3)@L(str(int(round(c))))] # ogarnia grubosc galezi,rysuje galaz,wyswietlanie liczby galezi nad #
  93. elif SHOW_FLUX :
  94. produce _((c*0.01)**0.7);(color[m])F(LEN)@c[|f(LEN/3.)^(90)f(LEN)&(90);(3)@L(str(int(round(v))))] # wyswietlanie mocy ostatniego przeplywu #
  95.  
  96. endlsystem
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement