рд╢реЛрд░ рдкреЗрд░реНрд▓рд┐рди (Perlin рд╢реЛрд░)

рд╢реБрдн рджрд┐рдиред рдореИрдВ рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ Perlin рд╢реЛрд░ ( рдпрд╣ рдПрдХ ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд▓рд╛рддрд╛ рд╣реВрдВред рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдВрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╣рдм ( рдпрд╣рд╛рдБ ) рдкрд░ рджрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд▓реЗрдЦ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧреА рдкрд╛ рд╕рдХрддрд╛ рд╣реИред

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

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

рдкреЗрд░рд▓рд┐рди рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджреЛ рдЪреАрдЬрд╝реЗрдВ рдЪрд╛рд╣рд┐рдП, рдПрдХ рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдПрдХ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди рдлрд╝рдВрдХреНрд╢рдиред

рд╢реЛрд░ рд╕рдорд╛рд░реЛрд╣


рд╢реЛрд░ рд╕рдорд╛рд░реЛрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ рдирдореВрдирд╛ рд╣реИред рдпрд╣ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рджреЛ рдмрд╛рд░ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рд╣реА рдирдВрдмрд░ рдХреЛ рджреЛ рдмрд╛рд░ рд▓реМрдЯрд╛рдПрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╡рд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗ, рдЕрдиреНрдпрдерд╛ рдЙрд╕рд╕реЗ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдВ рдПрдХ рдЧреНрд░рд╛рдл рд╣реИ рдЬреЛ рдПрдХ рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИред X рдЕрдХреНрд╖ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдкрд░ 0 рд╕реЗ 1 рддрдХ рдХрд╛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЫрд╡рд┐
рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╣рдЬ рдкреНрд░рдХреНрд╖реЗрдк рджреНрд╡рд╛рд░рд╛, рд╣рдо рдПрдХ рдирд┐рд░рдВрддрд░ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдЧреИрд░-рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИред
рдЫрд╡рд┐
рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЗ рдмрд╛рдж рдореЗрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣реЛрдВрдЧреЗред

рдкрд░рд┐рднрд╛рд╖рд┐рдд


рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рджреЗрдВ рдХрд┐ рдореБрдЭреЗ рдЖрдпрд╛рдо рдФрд░ рдЖрд╡реГрддреНрддрд┐ рд╕реЗ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рднреМрддрд┐рдХреА рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЖрдпрд╛рдо рдФрд░ рдЖрд╡реГрддреНрддрд┐ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд░ рдЖ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рд╕рд╛рдЗрди рд▓рд╣рд░ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рд╕рд╛рдЗрди рд▓рд╣рд░

рдЫрд╡рд┐
(рдЖрдпрд╛рдо - рдЖрдпрд╛рдо, рддрд░рдВрдЧ рджреИрд░реНрдзреНрдп - рддрд░рдВрдЧ рджреИрд░реНрдзреНрдп, рдЖрд╡реГрддреНрддрд┐ - рдЖрд╡реГрддреНрддрд┐)
рддрд░рдВрдЧ рджреИрд░реНрдзреНрдп рдПрдХ рд╢реАрд░реНрд╖ рд╕реЗ рджреВрд╕рд░реЗ рддрдХ рдХреА рджреВрд░реА рд╣реИред рдЖрдпрд╛рдо рддрд░рдВрдЧ рдХреА рдКрдБрдЪрд╛рдИ рд╣реИред рдЖрд╡реГрддреНрддрд┐ рдХреЛ 1 / (рддрд░рдВрдЧ рджреИрд░реНрдзреНрдп) рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╢реЛрд░ рдХреА рд▓рд╣рд░

рдЫрд╡рд┐
рдЗрд╕ рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЧреНрд░рд╛рдл рдкрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рд╛рд▓ рдбреЙрдЯреНрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдорд╛рдиреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдпрд╛рдо рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рд╣реИ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рддрд░рдВрдЧ рджреИрд░реНрдзреНрдп рдПрдХ рд▓рд╛рд▓ рд╕реНрдерд╛рди рд╕реЗ рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рджреВрд░реА рд╣реИред рдлрд┐рд░ рд╕реЗ, рдЖрд╡реГрддреНрддрд┐ рдХреЛ 1 / (рддрд░рдВрдЧ рджреИрд░реНрдзреНрдп) рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдПрдХ рдкреЗрд░реНрд▓рд┐рди рд╢реЛрд░ рд╕рдорд╛рд░реЛрд╣ рдмрдирд╛рдирд╛


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

рдкреНрд░рддрд┐рд░реЛрдз (рд╣рда)


рдЬрдм рдЖрдк рдЗрди рд╢реЛрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдпрд╛рдо рдФрд░ рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЖрдпрд╛рдореА рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рджреЛ рдмрд╛рд░ рдЖрд╡реГрддреНрддрд┐ рдФрд░ рдЖрдзреЗ рдЖрдпрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдПрдХ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдирд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╣рд░ рдЪреАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдк рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдФрд░ рдПрдореНрдкрд▓реАрдЯреНрдпреВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд░ рдЪрд░рдг рдореЗрдВ рдкреЗрд░реНрд▓рд┐рди рдлрд╝рдВрдХреНрд╢рди рд╢реЛрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд┐рдХрдиреА рдкрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрдо рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рдмрдбрд╝реЗ рдЖрдпрд╛рдореЛрдВ рдФрд░ рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рдмрд╣реБрдд рдЫреЛрдЯреЗ рдЖрдпрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдкреЗрд░рд▓рд┐рди рд╢реЛрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛ рдЖрдк рдХрдо рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯреЗ рдЖрдпрд╛рдореЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдПрдХ рд╕рдкрд╛рдЯ рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЪрдЯреНрдЯрд╛рдиреА рд╡рд┐рдорд╛рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рд╣рд░ рд╕рдордп "рдЖрдпрд╛рдо" рдФрд░ "рдЖрд╡реГрддреНрддрд┐" рд╢рдмреНрджреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдЖрдпрд╛рдо рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдореВрд▓реНрдп рдХреЛ рджреГрдврд╝рддрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рдЯреАрдХ рдЕрд░реНрде рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЕрдирд┐рд╢реНрдЪрд┐рддрддрд╛ рд╣реИред рдпрд╣ рд╢рдмреНрдж рдореВрд▓ рд░реВрдк рд╕реЗ рдореИрдВрдбреЗрд▓рдмреНрд░реЛрдЯ рджреНрд╡рд╛рд░рд╛ рдЧрдврд╝рд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рднрдЧреНрди рдХреА рдЦреЛрдЬ рдХреЗ рдкреАрдЫреЗ рдереЗред рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрдо рдкреНрд░рддрд┐рд░реЛрдз рд╡рд╛рд▓реЗ рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╢реЛрд░ рдХреА рдкрд╣рдЪрд╛рди рдХреАред рдореЗрд░рд╛ рджреЛрд╕реНрдд рдореИрдЯ рднреА рджреГрдврд╝рддрд╛ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореИрдВ рдореИрдЯ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдбрд▓рдмреНрд░реЙрдЯред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рджреГрдврд╝рддрд╛ рдХреА рд╣рдорд╛рд░реА рдкрд░рд┐рднрд╛рд╖рд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
frequency() = 2^i amplitude() = persistence()^i 

рдЬрд╣рд╛рдВ рдореИрдВ i-th рдЬреЛрдбрд╝рд╛ рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рд╣реИред
рдкреЗрд░рд▓рд┐рди рд╢реЛрд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рджреГрдврд╝рддрд╛ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрд░реЗрдЦреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
рд╡реЗ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢реЛрд░ рдШрдЯрдХ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ, рдореВрд▓реНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рднрд╛рд╡, рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкреЗрд░рд▓рд┐рди рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рдиред

рд╕реНрдерд╛рдпрд┐рддреНрд╡ = 1/4

рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ: 1, 2, 4, 8, 16, 32
рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐ = рдЫрд╡рд┐
рдЖрдпрд╛рдо: 1, 1/4, 1/16, 1/64, 1/256, 1/1024

рд╕реНрдерд╛рдпрд┐рддреНрд╡ = рез/реи

рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ: 1, 2, 4, 8, 16, 32
рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐ = рдЫрд╡рд┐
рдЖрдпрд╛рдо: 1, 1/2, 1/4, 1/8, 1/16, 1/32

рд╕реНрдерд╛рдпрд┐рддреНрд╡ = 1 / рд░реВрдЯ 2

рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ: 1, 2, 4, 8, 16, 32
рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐ = рдЫрд╡рд┐
рдЖрдпрд╛рдо: 1, 1 / 1.414, 1/2, 1 / 2.828, 1/4, 1 / 5.656

рд╕реНрдерд╛рдпрд┐рддреНрд╡ = рез

рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ: 1, 2, 4, 8, 16, 32
рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐ = рдЫрд╡рд┐
рдПрдореНрдкреНрд▓рд┐рдЯреНрдпреВрдб: 1, 1, 1, 1, 1, 1

рд╕рдкреНрдЯрдХ


рдкреНрд░рддреНрдпреЗрдХ рдЬреЛрдбрд╝рд╛ рдмрд╛рдж рдХреЗ рд╢реЛрд░ рд╕рдорд╛рд░реЛрд╣ рдХреЛ рдПрдХ рд╕рдкреНрддрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рджреЛ рдмрд╛рд░ рдЖрд╡реГрддреНрддрд┐ рд╣реЛрддреА рд╣реИред рд╕рдВрдЧреАрдд рдореЗрдВ, рд╕рдкреНрддрдХ рдХреЗ рдкрд╛рд╕ рднреА рдпрд╣ рдЧреБрдг рд╣реЛрддрд╛ рд╣реИред
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝реЗ рдЧрдП рдХрд┐рддрдиреЗ рд╕рдкреНрддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрдкрдХреЗ рдКрдкрд░ рд╣реИрдВред рдЖрдк рдЬрд┐рддрдиреЗ рдЪрд╛рд╣реЗрдВ рдЙрддрдиреЗ рдпрд╛ рдХреБрдЫ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдЖрдкрдХреЛ рдХреБрдЫ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдБред рдпрджрд┐ рдЖрдк рдПрдХ рд╕реНрдХреНрд░реАрди рдкрд░ рдЫрд╡рд┐ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрд░рд▓рд┐рди рдХреЗ рд╢реЛрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╕рдордп рдЖрдПрдЧрд╛ рдЬрдм рдСрдХреНрдЯреЗрд╡ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЖрд╡реГрддреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдмрд╣реБрдд рдЙрдЪреНрдЪ рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд╕рднреА рдмрд╛рд░реАрдХ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рд╕реНрдХреНрд░реАрди рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рдкрд┐рдХреНрд╕реЗрд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдкрд░реНрд▓рд┐рди рд╢реЛрд░ рдХреЗ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реНрдХреНрд░реАрди рд╕рдВрдХрд▓реНрдк (рдпрд╛ рдЕрдиреНрдп рдорд╛рдзреНрдпрдо) рдХреА рд╕реАрдорд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рддрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╢реЛрд░ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╢реЛрд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд░реЛрдХрдирд╛ рдмреБрджреНрдзрд┐рдорд╛рди рд╣реИ рдЬрдм рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЖрдпрд╛рдо рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдкреНрд░рддрд┐рд░реЛрдз рдХреЗ рд╕реНрддрд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдкреЗрд░рд▓рд┐рди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЖрдпрд╛рдо рдФрд░ рд╕реНрдХреНрд░реАрди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХрд╛ рдмрд┐рдЯ (рдпрд╛ рдХреБрдЫ рдФрд░)ред

рдПрдХ рд╢реЛрд░ рд╕рдорд╛рд░реЛрд╣ рдмрдирд╛рдПрдБ


рд╣рдо рд╢реЛрд░ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдХреНрдпрд╛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ? рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдиреНрдп рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╡рд┐рдкрд░реАрдд рдЖрдк рдЙрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдореБрдарднреЗрдбрд╝ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдПрдВ рджреЗрддреЗ рд╣реИрдВ, рдпреЗ рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдПрдХ рд╣реА рдирдВрдмрд░ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рдирдВрдмрд░ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣реА рдЬрд╡рд╛рдм рджреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рдирдВрдмрд░ рджрд░реНрдЬ рдХрд░рдиреЗ рдкрд░, рдпрд╣ рдПрдХ рдФрд░ рдирдВрдмрд░ рд▓реМрдЯрд╛рдПрдЧрд╛ред
рдЦреИрд░, рдореИрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХреА, рдФрд░ рдпрд╣рд╛рдВ рдореБрдЭреЗ рдПрдХ рдорд┐рд▓рд╛ред рд╡рд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдпрд╣ -1.0 рд╕реЗ 1.0 рддрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдирдВрдмрд░ рджреЗрддрд╛ рд╣реИред
  function IntNoise(32-bit integer: x) x = (x<<13) ^ x; return ( 1.0 - ( (x * (x * x * 15731 + 789221) + 1376312589) & 7fffffff) / 1073741824.0); end IntNoise function 

рдЕрдм, рдЖрдк рд╢рд╛рдпрдж рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреА рдХреБрдЫ рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпреЗ рдмрдбрд╝реЗ, рдЦреМрдлрдирд╛рдХ-рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдирдВрдмрд░ рд╕рднреА рдкреНрд░рд╛рдЗрдо рдирдВрдмрд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдмрд╕ рдПрдХ рд╣реА рдЖрдХрд╛рд░ рдХреЗ рдХреБрдЫ рдЕрдиреНрдп рдкреНрд░рд╛рдЗрдо рдирдВрдмрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП primes рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрд╛ред рдЖрдк рдЙрд╕реЗ рд╢реБрд░реБрдЖрддреА рдФрд░ рдЕрдВрддрд┐рдо рд╕рдВрдЦреНрдпрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╣ рдЙрди рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рд╕рднреА рдЕрдкрд░рд╛рдзреЛрдВ рдХреЛ рдЦреЛрдЬреЗрдЧреАред рд╕реНрд░реЛрдд рдХреЛрдб рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреНрд░рд╛рдЗрдо рдирдВрдмрд░ ( рдкреНрд░реЛрдЧреНрд░рд╛рдо рдФрд░ рдХреЛрдб ) рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
( рд╕рдВрд╕рд╛рдзрди рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╣рд╛рдВ рдХреЛрдб рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд╣реИ )
 #include <stdlib.h> #include <iostream.h> #include <math.h> inline long sqrt(long i) { long r,rnew=1,rold=r; do { rold=r; r=rnew; rnew = (r+(i/r)); rnew >>= 1; } while(rold != rnew); return rnew; } inline int isprime(long i) { long si,j; si = sqrt(i); for (j=2; (j<=si); j++) { if (i%j == 0) return 0; } return 1; } void main(int argc, char *argv[]) { long i,i1,i2,f=0; if (argc < 2) { cout << endl << endl; cout << "Prime number finder: Hugo Elias 1998" << endl << "http://freespace.virgin.net/hugo.elias" << endl << endl; cout << "Usage:" << endl << " primes ab > primes.txt" << endl << endl; cout << "will find all primes between a and b" << endl << "and will write the results to the file PRIMES.TXT" << endl; return; } i1 = atol(argv[1]); i2 = atol(argv[2]); for (i=i1; i<i2; i++) if (isprime(i)) { f++; if (f==16) { cout << endl; f=0; } cout << i << " "; } } 


рдкреНрд░рдХреНрд╖реЗрдк


рдЕрдкрдирд╛ рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЙрди рдорд╛рдиреЛрдВ рдХреЛ рд╕реБрдЪрд╛рд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╕реЗ, рдЖрдк рдЕрдкрдиреА рдкрд╕рдВрдж рдХреА рдХреЛрдИ рднреА рд╡рд┐рдзрд┐ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рджрд┐рдЦрддреА рд╣реИрдВред рдорд╛рдирдХ рдкреНрд░рдХреНрд╖реЗрдк рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рддреАрди рдЗрдирдкреБрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдП, рдмреА, рдЙрдирдХреЗ рдмреАрдЪ рдкреНрд░рдХреНрд╖реЗрдк рдХреЗ рд▓рд┐рдП рдорд╛рди, рдФрд░ рдПрдХреНрд╕, рдЬреЛ 0 рд╕реЗ 1 рддрдХ рдорд╛рди рд▓реЗрддрд╛ рд╣реИред рдкреНрд░рдХреНрд╖реЗрдк рдлрд╝рдВрдХреНрд╢рди рдПрдХреНрд╕ рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдП рдФрд░ рдмреА рдХреЗ рдмреАрдЪ рдПрдХ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрджрд┐ x 0 рд╣реИ, рддреЛ a рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ x = 1 рдХреЗ рд▓рд┐рдП, рддреЛ b рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ x 0 рдФрд░ 1 рдХреЗ рдмреАрдЪ рд╣реИ, рддреЛ a рдФрд░ b рдХреЗ рдмреАрдЪ рдХреБрдЫ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рд░реИрдЦрд┐рдХ рдкреНрд░рдХреНрд╖реЗрдк

рдпрд╣ рднрдпрд╛рдирдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд╕рд╕реНрддреЗ "рдкреНрд▓рд╛рдЬреНрдорд╛" рдХреА рддрд░рд╣ рд╣реИ рдХрд┐ рдХрдИ рдкрд░рд┐рджреГрд╢реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд╕рд░рд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрдк рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдкреЗрд░реНрд▓рд┐рди рд╢реЛрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдмрд╣рд╛рдирд╛ рд╣реЛрдЧрд╛ред
 function Linear_Interpolate(a, b, x) return a*(1-x) + b*x end of function 

рдЫрд╡рд┐

рдХреЛрд╕рд╛рдЗрди рдкреНрд░рдХреНрд╖реЗрдк

рдпрд╣ рд╡рд┐рдзрд┐ рд░реИрдЦрд┐рдХ рдкреНрд░рдХреНрд╖реЗрдк рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЪрд┐рдХрдиреА рд╡рдХреНрд░ рджреЗрддреА рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдпрджрд┐ рдЖрдк рдЧрддрд┐ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдиреБрдХрд╕рд╛рди рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред
 function Cosine_Interpolate(a, b, x) ft = x * 3.1415927 f = (1 - cos(ft)) * .5 return a*(1-f) + b*f end of function 

рдЫрд╡рд┐

рдШрди рдкреНрд░рдХреНрд╖реЗрдк

рдпрд╣ рд╡рд┐рдзрд┐ рдмрд╣реБрдд рд╣реА рд╕рд╣рдЬ рдкрд░рд┐рдгрд╛рдо рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЧрддрд┐ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрд╕рд╛рдЗрди рдкреНрд░рдХреНрд╖реЗрдк рд╕реЗ рдмреЗрд╣рддрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдпрд╣ рдЖрдкрдХреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИред рдпрд╣ рдереЛрдбрд╝рд╛ рдкреЗрдЪреАрджрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВред рдпрджрд┐ рдкрд╣рд▓реЗ, рдкреНрд░рдХреНрд╖реЗрдк рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рддреАрди рдЗрдирдкреБрдЯ рдереЗ, рддреЛ рдХреНрдпреВрдмрд┐рдХ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди рдкрд╛рдВрдЪ рд▓реЗрддрд╛ рд╣реИред рдП рдФрд░ рдмреА рдХреЗ рдмрдЬрд╛рдп, рдЕрдм рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ x рдХреЗ рд╕рд╛рде v0, v1, v2 рдФрд░ v3 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЫрд╡рд┐
v0 = рдкреЙрдЗрдВрдЯ рдЯреВ рдП
v1 = рдмрд┐рдВрджреБ a
v2 = рдмрд┐рдВрджреБ рдмреА
v3 = рдмрд┐рдВрджреБ b рдХреЗ рдмрд╛рдж
  function Cubic_Interpolate(v0, v1, v2, v3,x) P = (v3 - v2) - (v0 - v1) Q = (v0 - v1) - P R = v2 - v0 S = v1 return Px3 + Qx2 + Rx + S end of function 

рдЫрд╡рд┐

рдЪрд┐рдХрдирд╛ рд╢реЛрд░


рдкреНрд░рдХреНрд╖реЗрдк рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рд╢реЛрд░ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреЛ рднреА рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдХрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд▓рдЧ рд╕рдХреЗ, рд╕рд╛рде рд╣реА 2 рдбреА рдФрд░ 3 рдбреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХрдо рдХреНрд╖реЗрддреНрд░ред рдЪреМрд░рд╕рд╛рдИ рдЖрдкрдХреА рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХрд░реЗрдЧрд╛, рдФрд░ рдЬрд┐рд╕ рдХрд┐рд╕реА рдиреЗ рднреА рдПрдХ рдЪреМрд░рд╕рд╛рдИ рдлрд┐рд▓реНрдЯрд░ рдпрд╛ рдлрд╛рдпрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд▓рд┐рдЦрд╛ рд╣реИ, рдЙрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рди рд▓реЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЗрд╕ рдорд╛рди рдХрд╛ рдФрд╕рдд рдФрд░ рдкрдбрд╝реЛрд╕реА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рдорд╛рди рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЫрджреНрдо рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
рдПрдХ рдЫреЛрдЯреЗ рдЖрд░реЗрдЦ рдореЗрдВ, рд╕реБрдЪрд╛рд░реВ рд╢реЛрд░ рд╕рдорд╛рд░реЛрд╣ рдФрд░ рдЪреМрд░рд╕рд╛рдИ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╣реА рд╢реЛрд░ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реБрдЪрд╛рд░реВ рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реБрдЪрд╛рд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрднреА рднреА рдЕрди-рд╕реНрдореВрде рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЪрд░рдо рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рдФрд░ рдЖрд╡реГрддреНрддрд┐ рд▓рдЧрднрдЧ рдЖрдзреА рд╣реИред 1-рдЖрдпрд╛рдореА рд╢реЛрд░ рдХреЛ рдЪреМрд░рд╕рд╛рдИ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдкреНрд░рднрд╛рд╡ рд╣реИред рдЪреМрд░рд╕рд╛рдИ 2 рдпрд╛ рддреАрди рдЖрдпрд╛рдореЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЬрд╣рд╛рдВ рд╢реЛрд░ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдХрдо рдХрд░рдирд╛ рд╣реИред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдХреЛ рднреА рдХрдо рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рдЪрд┐рдХрдиреА рдмрдирд╛рддреЗ рд╣реИрдВ, рд╢реЛрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд╛рдкрд▓реВрд╕реА рд╣реЛрдЧрд╛ред
рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐

1-рдЖрдпрд╛рдореА рдЪреМрд░рд╕рд╛рдИ рд╢реЛрд░

  function Noise(x) . . end function function SmoothNoise_1D(x) return Noise(x)/2 + Noise(x-1)/4 + Noise(x+1)/4 end function 

2-рдЖрдпрд╛рдореА рдЪреМрд░рд╕рд╛рдИ рд╢реЛрд░

  function Noise(x, y) . . end function function SmoothNoise_2D(x>, y) corners = ( Noise(x-1, y-1)+Noise(x+1, y-1)+Noise(x-1, y+1)+Noise(x+1, y+1) ) / 16 sides = ( Noise(x-1, y) +Noise(x+1, y) +Noise(x, y-1) +Noise(x, y+1) ) / 8 center = Noise(x, y) / 4 return corners + sides + center end function 


рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛


рдЕрдм рдЖрдк рд╕рдм рдХреБрдЫ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реАрдЦреА рдЧрдИ рд╣рд░ рдЪреАрдЬ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдФрд░ рдкреЗрд░рд▓рд┐рди рд╢реЛрд░ рд╕рдорд╛рд░реЛрд╣ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдпреЗ рдХреЗрд╡рд▓ рд╢реЛрд░ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкреЛрдВ рдХреЗ рдХреБрдЫ рдЬреЛрдбрд╝ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдкреЗрд░реНрд▓рд┐рди рдХрд╛ рд╢реЛрд░ рдХреЗрд╡рд▓ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рд╣реИред рдЖрдк рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред
рддреЛ, рдпрд╣рд╛рдБ рдПрдХ рд╕рд░рд▓ 1-рдЖрдпрд╛рдореА рдкреЗрд░рд▓рд┐рди рдлрд╝рдВрдХреНрд╢рди рд╣реИред рдкреЗрд░реНрд▓рд┐рди рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рд▓реВрдк рд╣реИред рд▓реВрдк рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рджреВрд╕рд░реА рдЖрд╡реГрддреНрддрд┐ рдореЗрдВ рдПрдХ рдФрд░ рд╕рдкреНрддрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╡рд┐рднрд┐рдиреНрди рд╢реЛрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмреБрд▓рд╛рддреА рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рд╢реЛрд░ i ред рдЕрдм рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдИ рд╢реЛрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдкреНрд░рддреНрдпреЗрдХ рд╕рдкреНрддрдХ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЫрджреНрдо рдХреЛрдб рдореЗрдВ рдорд╛рдирд╛ рдЧрдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╕рднреА рд╢реЛрд░ рдлрд╝рдВрдХреНрд╢рди рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИрдВ, рдЗрди рддреАрди рдмрдбрд╝реЗ рдЕрдкрд░рд╛рдзреЛрдВ рдХреЗ рдЕрд░реНрде рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЖрдк рдПрдХ рд╣реА рдХреЛрдб рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╕ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

1-рдЖрдпрд╛рдореА рдкрд░реНрд▓рд┐рди рд╢реЛрд░ (рдЫрджреНрдо рдХреЛрдб)

  function Noise1(integer x) x = (x<<13) ^ x; return ( 1.0 - ( (x * (x * x * 15731 + 789221) + 1376312589) & 7fffffff) / 1073741824.0); end function function SmoothedNoise_1(float x) return Noise(x)/2 + Noise(x-1)/4 + Noise(x+1)/4 end function function InterpolatedNoise_1(float x) integer_X = int(x) fractional_X = x - integer_X v1 = SmoothedNoise1(integer_X) v2 = SmoothedNoise1(integer_X + 1) return Interpolate(v1 , v2 , fractional_X) end function function PerlinNoise_1D(float x) total = 0 p = persistence n = Number_Of_Octaves - 1 loop i from 0 to n frequency = 2i amplitude = pi total = total + InterpolatedNoisei(x * frequency) * amplitude end of i loop return total end function 


рдЕрдм рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ 2 рдпрд╛ рдЕрдзрд┐рдХ рдЖрдпрд╛рдореА рдкреЗрд░рд▓рд┐рди рд╢реЛрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдХреЛрдб рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
2-рдЖрдпрд╛рдореА рдкреЗрд░рд▓рд┐рди рд╢реЛрд░ (рдЫрджреНрдо рдХреЛрдб)

 function Noise1(integer x, integer y) n = x + y * 57 n = (n<<13) ^ n; return ( 1.0 - ( (n * (n * n * 15731 + 789221) + 1376312589) & 7fffffff) / 1073741824.0); end function function SmoothNoise_1(float x, float y) corners = ( Noise(x-1, y-1)+Noise(x+1, y-1)+Noise(x-1, y+1)+Noise(x+1, y+1) ) / 16 sides = ( Noise(x-1, y) +Noise(x+1, y) +Noise(x, y-1) +Noise(x, y+1) ) / 8 center = Noise(x, y) / 4 return corners + sides + center end function function InterpolatedNoise_1(float x, float y) integer_X = int(x) fractional_X = x - integer_X integer_Y = int(y) fractional_Y = y - integer_Y v1 = SmoothedNoise1(integer_X, integer_Y) v2 = SmoothedNoise1(integer_X + 1, integer_Y) v3 = SmoothedNoise1(integer_X, integer_Y + 1) v4 = SmoothedNoise1(integer_X + 1, integer_Y + 1) i1 = Interpolate(v1 , v2 , fractional_X) i2 = Interpolate(v3 , v4 , fractional_X) return Interpolate(i1 , i2 , fractional_Y) end function function PerlinNoise_2D(float x, float y) total = 0 p = persistence n = Number_Of_Octaves - 1 loop i from 0 to n frequency = 2i amplitude = pi total = total + InterpolatedNoisei(x * frequency, y * frequency) * amplitude end of i loop return total end function 


рдореВрд▓ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдордЧреНрд░рд┐рдпрд╛рдВ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛; рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЦрддреНрдо рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рд╕рдВрджрд░реНрдн:
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЗрдЦ рд╣реА ред
рдХреЗрди рдкреЗрд░рд▓рд┐рди рд╡реЗрдмрд╕рд╛рдЗрдЯ

ps: рдкреНрд░рд┐рдп рдирд╛рдмрд╛рд▓рд┐рдЧреЛрдВ, рдХреНрдпрд╛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рдЗрдирд╕ рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

Source: https://habr.com/ru/post/In142592/


All Articles