рд╣реЗрд▓реЛ рд╣рдмреНрд░!
рдЖрдЬ рдореИрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдХреИрдирд╡рд╕ рдкрд░ рдкреЗрдбрд╝ рдкреИрджрд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рддреБрд░рдВрдд рд╕рдордЭрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдВрджрд░реНрдн рдкреЗрдбрд╝реЛрдВ рдпрд╛ рдмреА-рдкреЗрдбрд╝реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЙрди рдкреЗрдбрд╝реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬреЛ рд╣рдо рд╣рд░ рджрд┐рди рдЦрд┐рдбрд╝рдХреА рд╕реЗ рдмрд╛рд╣рд░ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рд╡рд╛рдпреБ рдХреНрд▓реАрдирд░ рдФрд░ рдСрдХреНрд╕реАрдЬрди рдХреЗ рд╕рд╛рде рд╕рдореГрджреНрдз рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рд╢рд░рдж рдЛрддреБ рдореЗрдВ рдкреАрд▓реЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕рд░реНрджрд┐рдпреЛрдВ рдореЗрдВ рдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред , рдЙрди рдмрд╣реБрдд рд╣реА рдЬреАрд╡рд┐рдд, рд╡рди, рдЕрд╕рд▓реА рдкреЗрдбрд╝реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреЗрд╡рд▓ рдХреИрдирд╡рд╕ рдкрд░ рдЪрд┐рддреНрд░рд┐рдд рдФрд░ рд╣рдо рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдРрд╕реЗ рдкреЗрдбрд╝ рдирд┐рдХрд▓рддреЗ рд╣реИрдВрдореБрдЭреЗ рдЕрдкрдиреЗ рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рдЯреНрд░реА рдЬрдирд░реЗрд╢рди рдХреА рдЬрд░реВрд░рдд рдереАред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреБрдЫ рдкрд░реНрдпрд╛рдкреНрдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдирд╣реАрдВ рдорд┐рд▓реЗред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдЬрдирд░реЗрдЯрд░ рд▓рд┐рдЦрд╛ ...
рдореИрдВ рдХреБрдЫ рднреА рдкрдврд╝рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛, рдореИрдВ рддреБрд░рдВрдд рдкрд░рд┐рдгрд╛рдо рдЪрд╛рд╣рддрд╛ рд╣реВрдВ!рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрд╛рд▓рд┐рдЦ рдХреЗ рдиреАрдЪреЗ рдХреНрдпрд╛ рд╣реИ?
рд╕рдм рдХреБрдЫ рдХреБрдЦреНрдпрд╛рдд рдмреЗрдЬрд┐рдпрд░ рдШрдЯрддрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЯреНрд░рдВрдХ рдФрд░ рд╢рд╛рдЦрд╛рдПрдВ рдЧреЛрд▓ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рдЬреАрд╡рд┐рдд рд▓рдЧрддреА рд╣реИрдВред рдореИрдВрдиреЗ рдХрдИ рддрд░реАрдХреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рдФрд░ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдерд╛ рдШрдЯрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧред рд╡реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдЙрдирд╕реЗ рд╕рд╣реА рджрд┐рд╢рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдЖрдк рдЙрдирдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрд╡рдХреНрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рдЧрдгрдирд╛ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрдирд░реЗрдЯрд░ рдХреА рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

TreeGenerator рд╡рд░реНрдЧ (рдЬреЗрдирд░реЗрдЯрд░ рдЖрд░реЗрдЦ рдореЗрдВ) рд╢рд╛рдЦрд╛рдУрдВ рдФрд░ рдЯреНрд░рдВрдХ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдЦрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, TreeGenerator рджрд░рд╛рдЬ рд╕реЗ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдЦрд╛ рдПрдХ рдЕрдореВрд░реНрддрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдЦрд╛ рдХреЛ рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреА рд╣реИред рдпрд╣ рднреА рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рджрд░рд╛рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдЪрд░рдг 1. рдПрдХ рд╢рд╛рдЦрд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ
рдбреНрд░реЙрдЕрд░ рдХреНрд▓рд╛рд╕ рдХреИрдирд╡рд╛рд╕ рдПрдкреАрдЖрдИ рдФрд░ рдмреНрд░рд╛рдВрдЪ рдХреЗ рдмреАрдЪ рдХреА рдкрд░рдд рд╣реИред рдпрд╣ рд╡рд░реНрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрддреНрддрд┐рдпреЛрдВ рдФрд░ рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИред
рдФрд░ рдпрд╣рд╛рдБ рджрд░рд╛рдЬ рд╕реЗ рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИ:
рдХреЛрдб рд╕реЗ, рдЖрдк рд╢рд╛рдпрдж рдпрд╣ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛рдП рдХрд┐ рд╢рд╛рдЦрд╛ рдХреЗ рд╢реАрд░реНрд╖ рдмрд┐рдВрджреБ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкреЗрдбрд╝ рдХреА рд╢рд╛рдЦрд╛ рд╢реБрд░реБрдЖрдд рд╕реЗ рдереЛрдбрд╝реА рд╕рдВрдХреАрд░реНрдг рд╣реЛрддреА рд╣реИред рдЬрд╣рд╛рдБ рддрдХ, рдпрд╣ BRANCH_CONSTRICTION рд╕реНрдерд┐рд░рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ 1.5 рд╣реИред BRANCH_COLOR - рд░рдВрдЧ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдорд╛рди рдХреЛ рд░рдВрдЧреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдЗрд╕ рд╢рд╛рдЦрд╛ рдХреА рддрд░рд╣ рд╣реЛрдЧрд╛:

рд╕рдЪ рдХрд╣реВрдВ, рддреЛ рдЬрдм рддрдХ рдпрд╣ рдмрд╣реБрдд рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ!
рдЪрд░рдг 2. рд╢рд╛рдЦрд╛рдУрдВ рд╕реЗ рдПрдХ рдкреЗрдбрд╝ рдкреИрджрд╛ рдХрд░рдирд╛
рдпрджрд┐ рдЖрдкрдиреЗ рдХрднреА рдЫреЛрдЯреЗ, рдХреЗрд╡рд▓ рдмреАрдЬ-рдЕрдВрдХреБрд░рд┐рдд рдкреЗрдбрд╝реЛрдВ рдХреЛ рдХрд░реАрдм рд╕реЗ рджреЗрдЦрд╛, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдХрд▓ рд╢рд╛рдЦрд╛ рд╣реИрдВ, рдлрд┐рд░ рдЕрдиреНрдп рдЗрд╕ рд╢рд╛рдЦрд╛ рд╕реЗ рдЕрдВрдХреБрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рднреА рдмрдврд╝рддрд╛ рд╣реИ рдФрд░ рдлреИрд▓рддрд╛ рд╣реИред рдореИрдВ рдХреНрдпреЛрдВ рд╣реВрдБ? рдФрд░ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЯреНрд░рдВрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдмрдбрд╝реА рд╢рд╛рдЦрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЕрдиреНрдп рд╢рд╛рдЦрд╛рдПрдВ рдмрдврд╝рддреА рд╣реИрдВ, рдФрд░ рдЗрди рд╢рд╛рдЦрд╛рдУрдВ рд╕реЗ рдЕрднреА рднреА рдкрд▓рдХреЗрдВ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП ...
рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдЦрд╛ рдХреЛ рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ рдЬреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рд╢рд╛рдЦрд╛ рд╡рд░реНрдЧ:
var Branch = function(x, y, leng, width, deformation, rotate) { this.params = { x: x, y: y, leng: leng, width: width, deformation: deformation, rotate: rotate, }; this.parent = null;
рдЖрдЗрдП рдПрдХ рдирдИ рдХрдХреНрд╖рд╛ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ:
new Branch(100,300,200,20,-60,-50).createChild(100,20/1.5,30,-60);
рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:

рдареАрдХ рд╣реИ, рджреВрд░ рд╕реЗ рдПрдХ рд╢рд╛рдЦрд╛ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд╣реИ рдирд╛? рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреЗрдбрд╝реЛрдВ рдХреА рд╢рд╛рдЦрд╛ рдФрд░ рд╣рд░ рд╕рдордп рд╕реВрд░реНрдп рдХреА рдУрд░ рдЦрд┐рдВрдЪрд╛рд╡ред рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рддрд░рд╣ рдХреЗ рдРрдб-рдЗрди рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдХреНрд░рд┐рдПрдЯ рдбрд┐рдбрд┐рд╡реЗрдВрд╢рди рдлрдВрдХреНрд╢рдиред рдкреНрд░рдХреГрддрд┐ рдореЗрдВ, рдЬреНрдпрд╛рджрд╛рддрд░ рдЕрдХреНрд╕рд░ 2 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╢рд╛рдЦрд╛ рд╡рд┐рднрд╛рдЬрди рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдореБрдЦреНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореЛрдЯрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдкрддрд▓рд╛ рд╣реИред рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдФрд░ рдЪрдпрдиреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрдкрд╛рдд 1.9: 1.4 рд╣реИред рдЖрдк рдЕрдкрдиреЗ рдкреЗрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдФрд░ рдпрд╣рд╛рдБ createDivarication рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рд╣реИ:
рдпрд╣рд╛рдБ рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рд╣реИ:

рдареАрдХ рд╣реИ, рд╣рд╛рде рд╕реЗ рдЦреАрдВрдЪрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреЗрдбрд╝реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдЯреНрд░реАрдЬреЗрдирд░реЗрдЯрд░ рдХреНрд▓рд╛рд╕ рдХреЗ рд▓рд┐рдП рд╣реИред рддреЛ рд╡рд╣ рдЦреБрдж:
var TreeGenerator = function(){
рдХреЛрдб рдкрдврд╝рддреЗ рд╕рдордп, рдЖрдкрдиреЗ рд╕рдВрднрд╡рддрдГ рдирдП BRANCH_DEFORMATION рд╕реНрдерд┐рд░рд╛рдВрдХ - рд╢рд╛рдЦрд╛рдУрдВ рдХреА рд╡рд┐рдХреГрддрд┐ (рд╡рдХреНрд░рддрд╛) (рдЯреНрд░рдВрдХ рдирд╣реАрдВ) рдХреЛ рджреЗрдЦрд╛, BRANCH_MAXLENGTH - рдЯреНрд░рдВрдХ рдХреА рдЕрдзрд┐рдХрддрдо рд▓рдВрдмрд╛рдИ рдФрд░ BRCHCH_MAXWIDTH - рдЯреНрд░рдВрдХ рдХреА рдЪреМрдбрд╝рд╛рдИред рд╢рд╛рдЦрд╛рдУрдВ рдХреА рд╡рд┐рдХреГрддрд┐ рдореЗрдВ, рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЙрдирдХреА рдореЛрдЯрд╛рдИ рднреА рдПрдХ рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреА рд╣реИ, рд╢рд╛рдЦрд╛ рдХреЛ рдкрддрд▓рд╛ рдХрд░рддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╡рд┐рдЪрд▓рди рдХрдо рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╢реБрд░реВ рдореЗрдВ рдкрд┐рдХреНрд╕рд▓ рдореЗрдВ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред рд▓рдВрдмрд╛рдИ рдХреЗ рд▓рд┐рдП, рд╢рд╛рдЦрд╛ рдЙрд╕ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдВрдмреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд╣рд╛рдВ рд╕реЗ рд╡рд╣ рдмрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдореИрдВрдиреЗ рдбреНрд░рд╛рд╣рд┐рд▓ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХреЛрдб рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рдЫрд╣ рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рдФрд░ рдмрд┐рдВрджреБ x рдФрд░ y рдкрд░ рдЕрд░реНрдзрд╡реГрддреНрдд рдЦреАрдВрдЪрддреА рд╣реИред
рдареАрдХ рд╣реИ, рддреЛ рдпрд╣ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЬреАрди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ, рд╣рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдорд┐рд▓рддрд╛ рд╣реИ:

рд╕рд╣рдордд рд╣реВрдБ, рдкреЗрдбрд╝ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ! рдХреЛрдИ рднреА рдЗрд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреЗрдбрд╝реЛрдВ рдХреЗ рдЕрдВрдзреЗрд░реЗ рд╕рд┐рд▓реНрд╣реВрдЯ рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рд╕рднреА рдЕрдзрд┐рдХ рдЕрдЧрд░ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдм рд╕рд░реНрджреА рдФрд░ рдЦрд┐рдбрд╝рдХреА рдХреЗ рдмрд╛рд╣рд░, рдкреЗрдбрд╝ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдХрднреА-рдХрднреА рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдирд╣реАрдВ рд░реБрдХреВрдВрдЧрд╛ рдФрд░ рдкреЗрдбрд╝реЛрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдирд░реЗрдЯрд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рдЬрд╛рд░реА рд░рдЦрд╛ред рдЕрдзрд┐рдХ рдЬреАрд╡рдВрдд рдФрд░ рджрд┐рд▓рдЪрд╕реНрдкред рдпрджрд┐ рдЖрдк рдореЗрд░реЗ рд╕рд╛рде рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЕрдЧрд▓реЗ рдмрд┐рдВрджреБ рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЪрд░рдг 3. рд╢рд╛рдЦрд╛рдУрдВ рд╕реЗ рд╢реВрдЯрд┐рдВрдЧ рдХреА рдкреАрдврд╝реА
рдЬрдм рдкреЗрдбрд╝ рдкрддреНрддреЗ рдХреЗ рдмрд┐рдирд╛ рдЦрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рди рдХреЗрд╡рд▓ рд▓реИрдХреЛрдирд┐рдХ, рдореЛрдЯреА рд╢рд╛рдЦрд╛рдУрдВ рд╕реЗ рдорд┐рд▓рдХрд░, рдмрд▓реНрдХрд┐ рдЙрди рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд╢реАрд░реНрд╖ рд╕реЗ рднреА рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрди рдЫреЛрдЯреА рдФрд░ рдмрд╣реБрдд рд╢рд╛рдЦрд╛рдУрдВ рд╕реЗ рдирд╣реАрдВ рдЬреЛ рдордирдорд╛рдиреА рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛рдУрдВ рд╕реЗ рдмрдврд╝рддреА рд╣реИрдВред рд╡реЗ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкреЗрдбрд╝ рдореЗрдВ рдЕрдзрд┐рдХ рдкрддреНрддреЗ рд╣реЛрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкрддреНрддреЗ рд╣рдорд╛рд░реЗ рдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ рдирдореА рдХреЛ рд╡рд╛рд╖реНрдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд╛рд░реНрдмрди рдбрд╛рдЗрдСрдХреНрд╕рд╛рдЗрдб рдХреЛ рдСрдХреНрд╕реАрдЬрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЗрди рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рд╕реНрдкреНрд░рд╛рдЙрдЯреНрд╕ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡реЗ рднреА рд╢рд╛рдЦрд╛рдПрдВ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдордирдорд╛рдиреЗ рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдмрдврд╝рддрд╛ рд╣реИ, рди рдХрд┐ рдХреЗрд╡рд▓ рдКрдкрд░ рд╕реЗред рдФрд░ рд╣рдорд╛рд░реЗ рдмреЗрдЬрд┐рдпрд░ рдШрдЯрддрд╛ рдкрд░ рд╢рд╛рдЦрд╛рдПрдВ! рдХреИрд╕реЗ рдЧрдгрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╢реВрдЯ рдХрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛? рдмреЗрдЬрд╝рд┐рдпрд░ рд╡рдХреНрд░
рд╕реВрддреНрд░ рд╕реНрд╡рдпрдВ рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХрд░реЗрдЧрд╛:

Js рдкрд░, рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:
рд╡рдХреНрд░ рд╢рд╛рдЦрд╛ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдЪрд▓реЗрдЧрд╛ред рдиреЗрддреНрд░рд╣реАрди, рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:

рдФрд░ рдЕрдм рд╢реВрдЯрд┐рдВрдЧ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ: рд╢рд╛рдЦрд╛ рдореЗрдВ рдПрдХ рдирдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВ
рд╣рдо рдЬрдирд░реЗрдЯрд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рднреА рдХрд░рддреЗ рд╣реИрдВ:
this.genO = function(branch) { if (branch.params.width > 1) {
рдФрд░ рдЗрд╕рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЬреАрди рдлрдВрдХреНрд╢рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ:
рдЗрд╕ рдкрд░:
рдЪрд▓реЛ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ? рдпрд╣рд╛рдБ рдПрдХ рдкреЗрдбрд╝ рд╣реИ:

рдпрд╣ рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рдкрд░реНрдпрд╛рдкреНрдд рдкрддреНрддреЗ рдирд╣реАрдВ рд╣реИрдВред рдЕрдЧрд▓рд╛ рдХрджрдо рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред
рд╕реНрдЯреЗрдк 4. рд▓реАрдл рдЬрдирд░реЗрд╢рди
рдкрддреНрддрд┐рдпрд╛рдВ рдХрд┐рд╕реА рднреА рдкреЗрдбрд╝ рдХрд╛ рдПрдХ рдЕрднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддреА рд╣реИрдВ (рд╕реБрдЗрдпреЛрдВ рдХреЛ рдардВрдб рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдФрд░ рд╡реЗ рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рдкрд╛рдВрдЪ рдкреНрд░рдХрд╛рд░ рдХреА рдкрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд▓реЗрдВрдЧреЗред рдкрддреНрддрд┐рдпрд╛рдВ рднреА рдмреЗрдЬрд╝рд┐рдпрд░ рд╡рдХреНрд░реЛрдВ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЦреАрдВрдЪреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рдЕрдВрдд рдмрд┐рдВрджреБрдУрдВ рдФрд░ рдПрдХ рд╡рдХреНрд░ рд╡рд┐рд░реВрдкрдг рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рде рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИрдВред рд╢реАрдЯ рдПрдХ рд╕рд╛рдд рдЧреБрдирд╛ рд╕рд╛рд░ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдмрд╛рдИрдВ рдУрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХрд╛рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреВрд░рдХ рд╣реЛрдВрдЧреЗред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╢реАрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓реЗрдВ:
[[ [100, 0],
рдбреНрд░рд╛рдЕрд░ рд╕реЗ рдбреНрд░рд╛ рдлрдВрдХреНрд╢рди рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
this.DrawLeaf = function(x, y, leafPoints, colors, scale, rotate) {
рдФрд░ рдЕрдм рдЗрд╕реЗ рдЬрдирд░реЗрдЯрд░ рд╕реЗ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдЪрд▓реЛ рдПрдХ рдЬреАрдирд▓ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ
this.genL = function(branch) { leafCount = branch.params.leng / (LEAF_LENG * LEAF_SCALE) * LEAF_DENSITY;
рд╣рдо рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЬреЗрдирдПрдлрдПрд▓ рдкрд░ рдлрд╛рд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЯрд┐рдкреНрдкрдгреА рдХреА рдЬрдЧрд╣ "рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдЕрдЧрд▓реЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА" рдЬреАрдирдПрд▓ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рд╕рд╛рде - рдЗрд╕ рддрд░рд╣:
if(LEAF_ISSHOWN){
рдЦреИрд░, рд╡рд╣ рдкреЗрдбрд╝ рдмрдбрд╝рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ!

рдФрд░ рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕рднреА рдХреЛрдб
GitHub рдкрд░
рд╣реИ ,
рдореЗрд░реЗ рдордЬрджреВрд░реЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо, рдЖрдк рдЗрд╕реЗ
рдпрд╣рд╛рдВ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ