All pages
Powered by GitBook
1 of 1

Loading...

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ создания сцСнариСв

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сцСнариСв Π½Π° основС тСкста Π² срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… сцСнариСв обСспСчиваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ построСния эффСктивных наглядных взаимосвязСй с использованиСм языков DesignScript, Python ΠΈ ZeroTouch (C#). Π’ DesignScript ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты, ΠΊΠ°ΠΊ рСгуляторы Π²Π²ΠΎΠ΄Π°, ΠΈ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ слоТныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ пространствС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python ΠΈΠ»ΠΈ C# ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ инструмСнтам ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ. ΠŸΡ€ΠΈ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠΌ использовании сочСтаниС этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ адаптированности, ясности ΠΈ эффСктивности всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НиТС приводится Π½Π°Π±ΠΎΡ€ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΏΠΎ дополнСнию Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… сцСнариСв тСкстовыми.

Π‘Π²ΠΎΠ΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ использованиС сцСнариСв

ВСкстовыС сцСнарии ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТныС взаимосвязи, Ρ‡Π΅ΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, хотя ΠΈΡ… возмоТности Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ. Π­Ρ‚ΠΎ слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡƒΠ·Π»Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой эффСктивныС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ позволяСт Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ†Π΅Π»ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для Dynamo Π² DesignScript ΠΈΠ»ΠΈ Python. Однако Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ сцСнарии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ интСрфСйс, состоящий ΠΈΠ· ΡƒΠ·Π»ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ², позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный ΠΏΠΎΡ‚ΠΎΠΊ графичСской ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ‚ΠΎΠΌ, Π² ΠΊΠ°ΠΊΠΈΡ… случаях возмоТности тСкстовых сцСнариСв прСвосходят возмоТности Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… сцСнариСв, β€” ΠΊΠ»ΡŽΡ‡ ΠΊ ΠΈΡ… использованию Π±Π΅Π· ΠΎΡ‚ΠΊΠ°Π·Π° ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятными ΡƒΠ·Π»Π°ΠΌΠΈ ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°ΠΌΠΈ. НиТС приводятся Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сцСнарии, ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€ΠΈ этом Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ язык программирования.

ВСкстовыС сцСнарии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:

  • организация Ρ†ΠΈΠΊΠ»ΠΎΠ²;

  • использованиС рСкурсии;

  • доступ ΠΊ внСшним Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ.

Π’Ρ‹Π±ΠΎΡ€ языка

Бписок рСсурсов, доступных Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… Dynamo, см. Π² .

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈ написании сцСнариСв Π² Dynamo β€” парамСтричСской срСдС β€” ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ систСмы ΡƒΠ·Π»ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½. РассматривайтС ΡƒΠ·Π΅Π», содСрТащий тСкстовый сцСнарий, ΠΊΠ°ΠΊ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡƒΠ·Π΅Π» Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΠŸΡ€ΠΈ этом ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡƒΠ·Π»Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ нСбольшой Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π° это β€” ΠΊΠ»ΡŽΡ‡ ΠΊ Π±Π΅Π·ΡƒΠΏΡ€Π΅Ρ‡Π½ΠΎΠΉ парамСтричСской систСмС. Π”Π°Π»Π΅Π΅ приводятся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½Π΅Π΅ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π² Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ внСшниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

  • ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ модСль нСпосрСдствСнно Π½Π° этих Π΄Π°Π½Π½Ρ‹Ρ….

  • ΠŸΠ΅Ρ€Π΅Π΄ написаниСм ΠΊΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

    • ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…;

ΠŸΠ΅Ρ€Π΅Π΄ написаниСм ΠΊΠΎΠ΄Π° Π±Ρ‹Π»ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

  1. ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Ρ‹ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ осадков.

  2. Π–Π΅Π»Π°Π΅ΠΌΠΎΠ΅ количСство капСль доТдя (Π°Π³Π΅Π½Ρ‚ΠΎΠ²).

  3. РасстояниС пСрСмСщСния капСль доТдя.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… взаимосвязСй

  • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° позволяСт Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для настройки ΠΈΠ»ΠΈ измСнСния ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° уравнСния ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы.

  • Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² сцСнарии логичСски связаны ΠΌΠ΅ΠΆΠ΄Ρƒ собой, слСдуСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ являСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½.

  • Π‘ΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚Π΅ количСство Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, оставив Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

Β«ΠœΠΎΠ΄ΡƒΠ»ΠΈΒ» ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² .

  1. Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

  2. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ сцСнария.

  3. Π¦ΠΈΠΊΠ», для выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ эти Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Π‘ΠΎΠ²Π΅Ρ‚. Π£Π΄Π΅Π»ΠΈΡ‚Π΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ внимания процСссу, сколько ΠΈ самому Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ.

НС ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΠΉΡ‚Π΅ΡΡŒ (слСдуйтС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ DRY β€” Don't repeat yourself)

  • Если ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π² сцСнарии выраТаСтся нСсколькими способами, Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ рассинхронизация этих совпадСний, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… исправлСний, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкам Π² расчСтах ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ противорСчиям.

  • ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ DRY Π·Π²ΡƒΡ‡ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Β«Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ, вводимая Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΈ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠΉΒ».

    • ΠŸΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ этого ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° всС взаимосвязанныС элСмСнты Π² сцСнарии Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ прСдсказуСмо ΠΈ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎ, Π° всС нСсвязанныС элСмСнты Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ логичСских послСдствий Π΄Ρ€ΡƒΠ³ для Π΄Ρ€ΡƒΠ³Π°.

Π‘ΠΎΠ²Π΅Ρ‚. ΠŸΠ΅Ρ€Π΅Π΄ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² сцСнарии (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, константы Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅) ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ вмСсто этого ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ связь с источником.

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ структура

По ΠΌΠ΅Ρ€Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ услоТнСния ΠΊΠΎΠ΄Π° основная идСя (ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ) становится всС ΠΌΠ΅Π½Π΅Π΅ ΠΈ ΠΌΠ΅Π½Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΉ. ΠŸΡ€ΠΈ этом всС слоТнСС ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ошибки ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ΄ ΠΈ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этих слоТностСй, для написания ΠΊΠΎΠ΄Π° рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. ΠŸΡ€ΠΈ этой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ΅ ΠΊΠΎΠ΄ разбиваСтся Π½Π° части Π² зависимости ΠΎΡ‚ выполняСмой Π·Π°Π΄Π°Ρ‡ΠΈ. Π”Π°Π»Π΅Π΅ прСдставлСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ совСты ΠΏΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ возмоТностСй управлСния сцСнариями благодаря ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ЗаписывайтС ΠΊΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

  • Β«ΠœΠΎΠ΄ΡƒΠ»ΡŒΒ» β€” это Π³Ρ€ΡƒΠΏΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ΄Π°, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΡƒΠ·Π»Ρƒ Dynamo Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ пространствС).

  • Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΎΡ‚ Π±Π»ΠΈΠ·Π»Π΅ΠΆΠ°Ρ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° (функция, класс, Π³Ρ€ΡƒΠΏΠΏΠ° Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ).

  • Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ΄Π° Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎΠ΅ качСство ΡƒΠ·Π»ΠΎΠ², позволяя ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ слоТныС взаимосвязи, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСкстовых сцСнариСв.

Π­Ρ‚ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ agent (Π°Π³Π΅Π½Ρ‚), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΈ.

  1. ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΊΠΎΠ΄Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Π³Π΅Π½Ρ‚Π°.

  2. ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΊΠΎΠ΄Π°, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‰ΠΈΠΉ Π°Π³Π΅Π½Ρ‚Π°.

  3. ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ строит ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π°Π³Π΅Π½Ρ‚Π°.

Π˜Ρ‰ΠΈΡ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΊΠΎΠ΄.

  • Если выясняСтся, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ выполняСт ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ (ΠΈΠ»ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅) дСйствиС Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… мСстах, рСкомСндуСтся ΠΊΠ»Π°ΡΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ для Π²Ρ‹Π·ΠΎΠ²Π°.

  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Manager ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Ρ…ΠΎΠ΄ΠΎΠΌ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ содСрТат Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Worker для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для пСрСмСщСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ конструкциями.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ сфСры с радиусами ΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠΌ, зависящими ΠΎΡ‚ значСния Z Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ².

  1. Π˜ΠΌΠ΅ΡŽΡ‚ΡΡ Π΄Π²Π΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Worker: ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ… создаСт сфСры с радиусами ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚Π° Π² зависимости ΠΎΡ‚ значСния Z Ρ†Π΅Π½Ρ‚Ρ€Π°.

  2. Π’ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Manager ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Worker. ΠŸΡ€ΠΈ Π΅Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ ΠΎΠ±Π΅ находящиСся Π² Π½Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½Ρ‹Π΅ элСмСнты.

  • Π’ интСрфСйсС модуля ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ элСмСнты, ΠΊΠ°ΠΊ прСдоставляСмыС самим ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΅ΠΌΡƒ.

  • ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ интСрфСйсы ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹, Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

Π Π°Π·Π΄Π΅Π»ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ.

  • ΠœΠΎΠ΄ΡƒΠ»ΠΈ Π½ΠΈΠΊΠΎΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π΅ зависимы Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ.

  • Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΊΠΎΠ΄ΠΎΠ²

  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

  • ΠšΠ»Π°ΡΡΡ‹

Π—ΠΎΠ½Π΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° всСх этапах Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€ΠΈ написании тСкстовых сцСнариСв Π² Dynamo Π²Π°ΠΆΠ½ΠΎ всСгда Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ создаваСмоС соотвСтствуСт ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌΡƒ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ быстро ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Ρ‹Π΅ события, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ синтаксичСскиС ошибки, логичСскиС нСсоотвСтствия, нСточности Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π°Π½ΠΎΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ‚. Π΄., ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ появлСния, Π° Π½Π΅ сразу. Π’Π°ΠΊ ΠΊΠ°ΠΊ тСкстовыС сцСнарии Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΡƒΠ·Π»Π°Ρ… Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области, ΠΎΠ½ΠΈ автоматичСски встроСны Π² ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Благодаря этому ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ сцСнария ограничиваСтся лишь Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… для Π²Ρ‹Π²ΠΎΠ΄Π°, запуском ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΎΡ†Π΅Π½ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΈΠ· сцСнария с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠ·Π»Π° наблюдСния (Watch). НиТС приводятся совСты ΠΏΠΎ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ сцСнариСв Π² процСссС ΠΈΡ… создания.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹.

  • ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ рСкомСндуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия.

    • Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΏΠ°ΡƒΠ·Ρƒ ΠΈ ΡƒΠ΄Π΅Π»ΠΈΡ‚Π΅ врСмя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ ΠΊΠΎΠ΄Π°.

    • ΠŸΡ€ΠΎΡΠ²Π»ΡΠΉΡ‚Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ. Π’Π°ΡˆΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ смогут ΠΏΠΎΠ½ΡΡ‚ΡŒ, для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½? Π­Ρ‚Π° функция Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°? МоТно Π»ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π΅Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ? НС создаю Π»ΠΈ я Π»ΠΈΡˆΠ½ΠΈΡ… ΠΊΠΎΠΏΠΈΠΉ ΠΈΠ»ΠΈ зависимостСй?

  1. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΊΡ€ΠΎΠΌΠΊΠΈ Ρ‚Π΅Π»Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΡ€ΠΈΠ²Ρ‹Ρ…, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ Π²ΠΎΠΊΡ€ΡƒΠ³ Π½Π΅Π³ΠΎ создаСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ Ρ€Π°ΠΌΠΊΠ°.

  2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ количСства ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Π»ΠΈΡΡŒ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹.

  3. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ систСмы ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ ΠΈ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚Ρ‹.

Π£Ρ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ случаи.

  • ΠŸΡ€ΠΈ написании сцСнариСв присвойтС Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния Π² ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΈΠΌ области, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΡΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… условиях.

  • Π”Π°ΠΆΠ΅ Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ установками, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π»ΠΈ ΠΎΠ½Π° Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ ΠΈΠ»ΠΈ пустыС значСния.

  • Иногда нСисправности ΠΈ ошибки, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΡΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π² сцСнарии, ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Ρ… случаях.

Π‘ΠΎΠ²Π΅Ρ‚. ВсСгда исходитС ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ с Π»ΡŽΠ±Ρ‹ΠΌ доступным Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ нСприятных ΡΡŽΡ€ΠΏΡ€ΠΈΠ·ΠΎΠ².

ЭффСктивная ΠΎΡ‚Π»Π°Π΄ΠΊΠ°

ΠžΡ‚Π»Π°Π΄ΠΊΠΎΠΉ называСтся процСсс устранСния ошибок Π² сцСнарии. Под ошибками ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΊΠΈ, Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ, нСточности ΠΈ Π»ΡŽΠ±Ρ‹Π΅ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. Иногда Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, достаточно ΡΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ написанноС имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях Ρ€Π΅Ρ‡ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ ΠΎ Π±ΠΎΠ»Π΅Π΅ глобальной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅, связанной со структурой сцСнария. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ Π·ΠΎΠ½Π΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сцСнария Π² процСссС Π΅Π³ΠΎ создания ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ сразу Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, хотя это ΠΈ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠ΅ отсутствиС ошибок. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ практичСскиС совСты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ошибки систСматичСски.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ°Ρ€ΠΊΠΈ наблюдСния.

  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… мСстах ΠΊΠΎΠ΄Π°, назначая ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ OUT (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ зондирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹).

ΠžΡΡ‚Π°Π²Π»ΡΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

  • ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ, Ссли ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ описан.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ количСства ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ пустых строк, Π½ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ позволяСт Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Ρ€Π°Π·Π±ΠΈΠ² ΠΈΡ… Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ части.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°.

  • Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ свСсти ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ модулям.

  • ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅.

  • Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… модулях, Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΡΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈΠ· .

  1. Входная гСомСтрия Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ Ρ€Π°ΠΌΠΊΡƒ слишком большого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π½Π°Π·Π½Π°Ρ‡ΠΈΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ OUT значСния xDist ΠΈ yDist.

  2. ΠšΡ€ΠΈΠ²Ρ‹Π΅ Ρ€Π΅Π±Ρ€Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ Ρ€Π°ΠΌΠΊΡƒ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ расстояния xDist ΠΈ yDist.

  3. ВставлСн ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ со значСниями xDist ΠΈ yDist.

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ «ВраСктория с наибольшСй ΠΊΡ€ΡƒΡ‚ΠΈΠ·Π½ΠΎΠΉΒ»

Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π½ΠΈΠΆΠ΅ ссылку.

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

НапишСм сцСнарий для модСлирования Π΄ΠΎΠΆΠ΄Π΅Π²Ρ‹Ρ… осадков с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ прСдставлСнных здСсь практичСских совСтов ΠΏΠΎ созданию тСкстовых сцСнариСв. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ практичСскиС совСты Π±Ρ‹Π»ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΊ ΠΏΠ»ΠΎΡ…ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ создания Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ²Β», Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слоТнСС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ с тСкстовыми сцСнариями. ЛогичСскиС связи, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² тСкстовых сцСнариях, слоТнСС ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚ΡΡ Π² Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. ВмСстС с возмоТностями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΡŽΡ‚ тСкстовыС сцСнарии, ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‚ΡΡ ΠΈ трСбования ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°. Рассмотрим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этапов, примСняя Π½Π° Π΄Π΅Π»Π΅ практичСскиС совСты.

Наш сцСнарий примСнялся ΠΊ повСрхности, Π΄Π΅Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ притяТСния.

Π‘Π½Π°Ρ‡Π°Π»Π° слСдуСт ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Dynamo. Π‘Π΄Π΅Π»Π°Π² это Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΡ‹ прСдоставим Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ доступ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ возмоТностям Dynamo Π² Python.

Бюда Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ планируСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π—Π°Ρ‚Π΅ΠΌ слСдуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ сцСнария, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΡƒΠ·Π»Π°. Π­Ρ‚ΠΈ внСшниС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ основой сцСнария ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΊ созданию парамСтричСской срСды.

НСобходимо ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π² сцСнарии Python, ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

  1. ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π°Π³Π΅Π½Ρ‚Ρ‹.

  2. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ двиТущихся Π°Π³Π΅Π½Ρ‚ΠΎΠ².

  3. МаксимальноС количСство шагов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°Π³Π΅Π½Ρ‚Ρ‹.

  4. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ Π²Π½ΠΈΠ· ΠΏΠΎ повСрхности ΠΈΠ»ΠΈ Π΅Π΅ пСрСсСчСния.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ создадим ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ сцСнария. Π’Π°ΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ являСтся ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅ΠΉ Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π²Π½ΠΈΠ· ΠΏΠΎ повСрхности для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ. Для этого трСбуСтся использованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² сцСнарии, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΊΠΎΠ΄Π°, собрав Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ классС (Π°Π³Π΅Π½Ρ‚Π΅). Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ этого класса (ΠΈΠ»ΠΈ модуля) ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… сцСнариях.

Для Π°Π³Π΅Π½Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ класс (ΠΌΠ°ΠΊΠ΅Ρ‚), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ повСрхности, выбирая пСрСмСщСния Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ с наибольшСй ΠΊΡ€ΡƒΡ‚ΠΈΠ·Π½ΠΎΠΉ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС.

  1. Имя.

  2. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΎΠ±Ρ‰ΠΈΠ΅ для всСх Π°Π³Π΅Π½Ρ‚ΠΎΠ².

  3. Атрибуты экзСмпляра, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Π³Π΅Π½Ρ‚Π°.

  4. Ѐункция для выполнСния шага.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π°Π³Π΅Π½Ρ‚ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² ΠΈΡ… Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для зондирования сцСнария с Ρ†Π΅Π»ΡŒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ работоспособности класса Π°Π³Π΅Π½Ρ‚ΠΎΠ².

НСобходимо ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляры всСх Π°Π³Π΅Π½Ρ‚ΠΎΠ², спуск ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎ повСрхности Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ, ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ… исходныС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹.

  1. Новый пустой список ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ².

  2. ΠœΠ΅ΡΡ‚ΠΎ Π½Π°Ρ‡Π°Π»Π° двиТСния ΠΏΠΎ повСрхности.

  3. ΠœΡ‹ Π½Π°Π·Π½Π°Ρ‡ΠΈΠ»ΠΈ список Π°Π³Π΅Π½Ρ‚ΠΎΠ² Π² качСствС Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ сцСнариСм. ВозвращаСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ количСство Π°Π³Π΅Π½Ρ‚ΠΎΠ², Π½ΠΎ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ потрСбуСтся снова Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·ΠΎΠ½Π΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сцСнария для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Π³ΠΎ Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ.

ΠžΠ±Π½ΠΎΠ²Π»ΡΠΉΡ‚Π΅ Π°Π³Π΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС. Π—Π°Ρ‚Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ», Π³Π΄Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Π³Π΅Π½Ρ‚Π° ΠΈ шага Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π² спискС ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, Π½Π΅ достиг Π»ΠΈ Π°Π³Π΅Π½Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° повСрхности, Π³Π΄Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг с Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Π½ΠΈΠ·. Если это условиС выполняСтся, Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π°Π³Π΅Π½Ρ‚Π° прСкращаСтся.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° всС Π°Π³Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠΌ Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΡŽ. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ всС Π°Π³Π΅Π½Ρ‚Ρ‹ достигнут ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния спуска ΠΈΠ»ΠΈ максимального количСства шагов, слСдуСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ ΠΊΡ€ΠΈΠ²ΡƒΡŽ (PolyCurve), ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΠΈ Π² спискС ΠΈΡ… ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ², ΠΈ вывСсти ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ слоТной ΠΊΡ€ΠΈΠ²ΠΎΠΉ.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ для поиска Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ с наибольшСй ΠΊΡ€ΡƒΡ‚ΠΈΠ·Π½ΠΎΠΉ.

  1. Набор ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² для модСлирования осадков Π½Π° Π±Π°Π·ΠΎΠ²ΠΎΠΉ повСрхности.

  2. ВмСсто поиска Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с наибольшСй ΠΊΡ€ΡƒΡ‚ΠΈΠ·Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°Π³Π΅Π½Ρ‚ΠΎΠ² Π½Π° пСрСсСчСниС Π±Π°Π·ΠΎΠ²ΠΎΠΉ повСрхности.

ΠŸΠΎΠ»Π½Ρ‹ΠΉ тСкстовый сцСнарий Python.

НСт

ZeroTouch (C#)

НСт

НСт

НСт

Π”Π°

НСт

ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅;
  • константы.

  • ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ спуска ΠΏΠΎ Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с наибольшСй ΠΊΡ€ΡƒΡ‚ΠΈΠ·Π½ΠΎΠΉ ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ пСрСсСчСния повСрхности.

  • Π£Π·Π΅Π» Python с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ количСством Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

  • Π‘Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° для ΠΎΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… ΠΊΡ€ΠΈΠ²Ρ‹Ρ… синим Ρ†Π²Π΅Ρ‚ΠΎΠΌ.

  • Если Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сформирован ΠΈΠ· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… сцСнария ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ эти Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π­Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ удобство Ρ€Π°Π±ΠΎΡ‚Ρ‹ со сцСнариСм Π·Π° счСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ упрощСния Π΅Π³ΠΎ интСрфСйса.

    ΠŸΡ€ΠΎΠ²Π΅Π΄ΠΈΡ‚Π΅ экспрСсс-ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Ρ†Π΅Π»Π΅ΡΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ.
  • Π’ качСствС Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°Π·Π½Π°Ρ‡Π°ΠΉΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ Π² сцСнарии, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ сцСнария ΡƒΠ·Π΅Π» всСгда Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ» Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

  • ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ€Π΅ΡˆΠΈΡ‚Π΅, слСдуСт Π»ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ всю ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

    Π’ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΎΡ‚Π»Π°ΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ измСнится.
  • Π£Π·Π΅Π» Python с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ Π² сцСнарии (IN[0], IN[1]).

  • Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΡ€ΠΈΠ²Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ.

  • Ѐункция ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈΠ·Π°Ρ†ΠΈΠΈ полоТСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага Π² спискС ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ².

    Π¦ΠΈΠΊΠ»Ρ‹

    РСкурсия

    Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ ΡƒΠ·Π»ΠΎΠ²

    Π’Π½Π΅ΡˆΠ½. Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

    Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅

    DesignScript

    Π”Π°

    Π”Π°

    Π”Π°

    НСт

    Π”Π°

    Python

    Π”Π°

    Π”Π°

    Частично

    Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ΅ ΠΏΠΎ созданию сцСнариСв
    ΡƒΠ·Π»Π΅ Python
    ΡƒΠ·Π»Π° Python

    Π”Π°

    ### BAD
    for i in range(4):
      for j in range(4):
        point = Point.ByCoordinates(3*i, 3*j, 0)
        points.append(point)
    ### GOOD
    count = IN[0]
    pDist = IN[1]
    
    for i in range(count):
      for j in range(count):
        point = Point.ByCoordinates(pDist*i, pDist*j, 0)
        points.append(point)
    # IMPORT LIBRARIES
    import random
    import math
    import clr
    clr.AddReference('ProtoGeometry')
    from Autodesk.DesignScript.Geometry import *
    
    # DEFINE PARAMETER INPUTS
    surfIn = IN[0]
    maxSteps = IN[1]
    def get_step_size():
      area = surfIn.Area
      stepSize = math.sqrt(area)/100
      return stepSize
    
    stepSize = get_step_size()
    class MyClass:
      i = 12345
    
      def f(self):
        return 'hello world'
    
    numbers = MyClass.i
    greeting = MyClass.f
    # Loop through X and Y
    for i in range(xCount):
      for j in range(yCount):
    
        # Rotate and translate the coordinate system
        toCoord = fromCoord.Rotate(solid.ContextCoordinateSystem.Origin,Vector.ByCoordinates(0,0,1),(90*(i+j%seed)))
        vec = Vector.ByCoordinates((xDist*i),(yDist*j),0)
        toCoord = toCoord.Translate(vec)
    
        # Transform the solid from the source coord system to the target coord system and append to the list
        solids.append(solid.Transform(fromCoord,toCoord))
    ### STEEPEST PATH ALGORITHM
    
    # IMPORT LIBRARIES
    import sys
    sys.path.append('C:\Program Files (x86)\IronPython 2.7\Lib')
    import random
    import math
    import clr
    clr.AddReference('ProtoGeometry')
    from Autodesk.DesignScript.Geometry import *
    
    # DEFINE PARAMETER INPUTS
    surfIn = IN[0]
    numAgents = IN[1]
    maxSteps = IN[2]
    decendBoo = IN[3]
    
    
    # DEFINE AGENT CLASS
    class Agent(object):
        def get_step_size():
            area = surfIn.Area
            stepSize = math.sqrt(area)/100
            return stepSize
    
        zVec = Vector.ZAxis()
        stepSize = get_step_size()
        dupTol = 0.001
    
    
        def __init__(self,u,v):
            self.endBoo = False
            self.U = u
            self.V = v
            self.Z = None
            self.trailPts = []
            self.update_trail()
    
        def update(self):
            if not self.endBoo:
                positionPt01 = self.trailPts[-1]
                normalVec = surfIn.NormalAtParameter(self.U,self.V)
                gradientVec = Vector.Cross(self.zVec, normalVec)
                if decendBoo:
                	gradientVec = gradientVec.Rotate(normalVec,-90)
    
                gradientVec = gradientVec.Normalized()
                gradientVec = gradientVec.Scale(self.stepSize)
                positionPt02 = positionPt01.Add(gradientVec)
                newPt = surfIn.ClosestPointTo(positionPt02)
                newUV = surfIn.UVParameterAtPoint(newPt)
                newU, newV = newUV.U, newUV.V
                newZ = newPt.Z
    
                if decendBoo and (self.Z <= newZ):
                	self.endBoo = True
                else:
    	            if ((abs(self.U-newU) <= self.dupTol) and (abs(self.V-newV) <= self.dupTol)):
    	                self.endBoo = True
    	            else:
    	                self.U, self.V = newU, newV
    	                self.update_trail()
    
        def update_trail(self):
            trailPt = surfIn.PointAtParameter(self.U,self.V)
            self.trailPts.append(trailPt)
            self.Z = trailPt.Z
    
    
    # INITIALIZE AGENTS
    agents = []
    for i in range(numAgents):
    	u = float(random.randrange(1000))/1000
    	v = float(random.randrange(1000))/1000
    	agent = Agent(u,v)
    	agents.append(agent)
    
    
    # UPDATE AGENTS
    for i in range(maxSteps):
    	for eachAgent in agents:
    		eachAgent.update()
    
    # DRAW TRAILS
    trails = []
    for eachAgent in agents:
    	trailPts = eachAgent.trailPts
    	if (len(trailPts) > 1):
    		trail = PolyCurve.ByPoints(trailPts)
    		trails.append(trail)
    
    # OUTPUT TRAILS
    OUT = trails