Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «НаписаниС скриптов для Blender 2.49Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 37

Автор Michel Anders

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




Π˜Ρ‚ΠΎΠ³

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ измСнСния ΠΊ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ ΠΊΠ°Π΄Ρ€ΠΎΠ² Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ состоянии ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠ°ΠΊ ΡΠΌΠ΅Π½ΡΡ‚ΡŒ слои, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π° Ρ€Π΅Π½Π΄Π΅Ρ€Π΅ стал Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ. Π’ подробностях, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ:

β€’ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ скриптсвязи ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ пространства

β€’ Как Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствия ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ

β€’ Как Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ

β€’ Как Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΠΈΡΡ‡Π΅Π·Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ слоя ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ прозрачности

β€’ Как ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ схСму, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΡƒΡŽ Ρ€Π°Π·Π½Ρ‹Π΅ мСши с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π΅

β€’ Как Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ 3D-Π²ΠΈΠ΄Π° Π”Π°Π»Π΅Π΅: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΊΡ€ΠΈΠ²Ρ‹Ρ… IPO.


6

ΠšΠ»ΡŽΡ‡ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΡ€ΠΈΠ²Ρ‹Π΅ IPO, ΠΈ ΠŸΠΎΠ·Ρ‹

ΠœΡ‹ ΡƒΠΆΠ΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с ΠΊΡ€ΠΈΠ²Ρ‹ΠΌΠΈ IPO Π² Π“Π»Π°Π²Π΅ 4, Pydrivers and Constraints, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ обсуТдали Pydrivers, Π½ΠΎ с IPO ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС, Ρ‡Π΅ΠΌ просто ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ IPO посрСдством Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. НапримСр, API Π‘Π»Π΅Π½Π΄Π΅Ρ€Π° обСспСчиваСт нас срСдствами для создания IPO ΠΈΠ· Π½ΠΈΡ‡Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Π»Π΅Π³ΠΊΠΎ Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, устанавливая ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΊΠ°Π΄Ρ€Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΊΡ€ΠΈΠ²Ρ‹Ρ… IPO ΠΈΠΌΠ΅ΡŽΡ‚ отчасти ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰Π΅Π΅ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ‚Π΅ΠΌΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Π΄ΠΎ сих ΠΏΠΎΡ€ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ. ΠšΠ»ΡŽΡ‡ΠΈ Π€ΠΎΡ€ΠΌΡ‹ ΠΈ ΠŸΠΎΠ·Ρ‹ - ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ (Π½Π°Π±ΠΎΡ€ΠΎΠ²) ΠΊΡ€ΠΈΠ²Ρ‹Ρ… IPO, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, IPO ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. ΠœΡ‹ столкнСмся ΠΊΠ°ΠΊ с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚Π°ΠΊ ΠΈ Позами ΠΏΠΎΠ·ΠΆΠ΅ Π² этой Π³Π»Π°Π²Π΅, Π½ΠΎ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ с рассмотрСния Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ IPO ΠΈΠ· Π½ΠΈΡ‡Π΅Π³ΠΎ.

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ, ΠΊΠ°ΠΊ:

β€’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΡ€ΠΈΠ²Ρ‹Π΅ IPO

β€’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ Ρƒ мСша

β€’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ IPO для этих ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹

β€’ ΠΏΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€ΠΌΠ°Ρ‚ΡƒΡ€Ρ‹

β€’ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния ΠΏΠΎΠ· Π² дСйствия


ΠžΠ±ΠΈΠ΄Ρ‡ΠΈΠ²Ρ‹ΠΉ ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ - ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ IPO ΠΈΠ· Π½ΠΈΡ‡Π΅Π³ΠΎ

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΏΡƒΡ‚Π΅ΠΉ двиТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ слСдовал Π² точности ΠΏΠΎ матСматичСской ΠΊΡ€ΠΈΠ²ΠΎΠΉ, ΠΈΠ»ΠΈ Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ многочислСнных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΡ€ΠΈΠ²Ρ‹Ρ… IPO ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² IPO (drivers).

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий: ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ произвСсти Π²Π·Π°ΠΈΠΌΠΎΠΎΠ±ΠΌΠ΅Π½ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠ»Π°Π²Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ Π±Π΅Π· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΈ сквозь Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° Π² сСрСдинС, ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ касались Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. НавСрноС, это ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ настройкой ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π½ΠΎ Π² Ρ‚ΠΎΠΆΠ΅ врСмя довольно ΠΎΠ±Ρ€Π΅ΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, особСнно Ссли Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ это для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π‘ΠΊΡ€ΠΈΠΏΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ, заботится ΠΎ всСх этих дСталях ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΊ Π»ΡŽΠ±Ρ‹ΠΌ Π΄Π²ΡƒΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ.


Π‘Ρ…Π΅ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: orbit.py

Π‘ΠΊΡ€ΠΈΠΏΡ‚ orbit.py, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

1. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ сСрСдины ΠΏΡƒΡ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

2. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ протяТСнности Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

3. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ IPO для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠ΄ΠΈΠ½.

4. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ IPO для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄Π²Π°.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ сСрСдины ΠΏΡƒΡ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ достаточно Π»Π΅Π³ΠΊΠΎ: ΠΌΡ‹ просто возьмСм срСднСС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ ΠΎΠ±ΠΎΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ протяТСнности Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ всё-Ρ‚Π°ΠΊΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ расстояния с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ любого Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΏΡƒΡ‚ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ для вычислСния. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ связанный с Π½ΠΈΠΌ Π³Π°Π±Π°Ρ€ΠΈΡ‚Π½Ρ‹ΠΉ ящик (bounding box).

Π­Ρ‚ΠΎΡ‚   Π³Π°Π±Π°Ρ€ΠΈΡ‚Π½Ρ‹ΠΉ   ящик   являСтся   ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»Π΅ΠΏΠΈΠΏΠ΅Π΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просто Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя всС Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Если Π²Π·ΡΡ‚ΡŒ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Π² качСствС протяТСнности (Ρ€Π°Π·ΠΌΠ΅Ρ€Π°) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ Π»Π΅Π³ΠΊΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это расстояниС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС Ρ‚ΠΎΠ³ΠΎ, насколько Π±Π»ΠΈΠ·ΠΊΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π±Ρ‹Ρ‚ΡŒ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, Π½Π΅ касаясь Π΅Π³ΠΎ, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Но это Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ окаТСмся слишком Π±Π»ΠΈΠ·ΠΊΠΎ. Π­Ρ‚ΠΎΡ‚ Π³Π°Π±Π°Ρ€ΠΈΡ‚Π½Ρ‹ΠΉ ящик Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° getBoundBox() Π² Π²ΠΈΠ΄Π΅ списка ΠΈΠ· восьми Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСдставляСт ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡƒΠ³Π»ΠΎΠ² Π³Π°Π±Π°Ρ€ΠΈΡ‚Π½ΠΎΠ³ΠΎ ящика. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС, Π³Π΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π³Π°Π±Π°Ρ€ΠΈΡ‚Π½Ρ‹Π΅ ящики Π΄Π²ΡƒΡ… сфСр:



Π”Π»ΠΈΠ½Π° Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Π³Π°Π±Π°Ρ€ΠΈΡ‚Π½ΠΎΠ³ΠΎ ящика ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вычислСна ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊ максимального Ρ‚Π°ΠΊ ΠΈ минимального Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ x, y, ΠΈ z. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ эту диагональ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π½ΠΈΡ†Π°ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ этими максимумом ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΎΠΌ. Π”Π»ΠΈΠ½Π° Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ впослСдствии получаСтся взятиСм ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ корня суммы ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ x, y, ΠΈ z. Ѐункция diagonal() довольно ΠΊΡ€Π°Ρ‚ΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠŸΠΈΡ‚ΠΎΠ½Π°. Она ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ список Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ x, y, ΠΈ z ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Vector Π² Π‘Π»Π΅Π½Π΄Π΅Ρ€Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ доступны ΠΏΠΎ индСксам 0, 1, ΠΈ 2 соотвСтствСнно):

def diagonal(bb):

   maxco=[]

   minco=[]

   for i in range(3):

      maxco.append(max(b[i] for b in bb))

      minco.append(min(b[i] for b in bb))

   return sqrt(sum((a-b)**2 for a,b in zip(maxco,minco)))

Она опрСдСляСт ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ max() ΠΈ min(). Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ, спаривая ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΈ максимум с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ zip().

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π² точности Π΄Π²Π° Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈ Ссли это Π½Π΅ Ρ‚Π°ΠΊ, ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, отобраТая Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ мСню (Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ кускС ΠΊΠΎΠ΄Π°). Если Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΌΡ‹ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ ΠΈΡ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ Π³Π°Π±Π°Ρ€ΠΈΡ‚Π½Ρ‹Π΅ ящики. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ вычисляСм максимальноС расстояниС w, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ своСго ΠΏΡƒΡ‚ΠΈ, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΎΠΉ минимального расстояния ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, Ρ‡Ρ‚ΠΎ эквивалСнтно Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΈ суммы Π΄Π»ΠΈΠ½ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Π΅ΠΉ этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²:

obs=Blender.Scene.GetCurrent().objects.selected

if len(obs)!=2:

   Draw.PupMenu('Please select 2 objects%t|Ok')

else:

   loc0 = obs[0].getLocation()

   loc1 = obs[1].getLocation()


   bb0 = obs[0].getBoundBox()

   bb1 = obs[1].getBoundBox()


   w = (diagonal(bb0)+diagonal(bb1))/4.0

ΠŸΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΠΌΡ‹ смоТСм Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΎΠ±ΠΎΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΌΡ‹ сначала создадим Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… ΠΈ пустых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΡ€ΠΈΠ²Ρ‹Ρ… IPO:

   ipo0 = Ipo.New('Object','ObjectIpo0')

   ipo1 = Ipo.New('Object','ObjectIpo1')

ΠœΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€Ρ‹ нашСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π² 1 ΠΈ 30 соотвСтствСнно, Π½ΠΎ скрипт Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΠ» эти Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹. ΠœΡ‹ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΡ€ΠΈΠ²ΠΎΠΉ IPO для IPO мСстополоТСния ΠΈ создаСм ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ (ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΊΠ°Π΄Ρ€) ΠΈ этим самым фактичСски назначаСтся ΠΊΠΎΡ€Ρ‚Π΅ΠΆ (Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠ°Π΄Ρ€Π°, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) Π½Π° ΠΊΡ€ΠΈΠ²ΡƒΡŽ (Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ строки ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°). ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊ этим ΠΊΡ€ΠΈΠ²Ρ‹ΠΌ ΠΏΠΎ индСксу - ΠΈΡ… Π½ΠΎΠΌΠ΅Ρ€Ρƒ ΠΊΠ°Π΄Ρ€Π° присвоСниСм значСния, ΠΊΠ°ΠΊ это сдСлано для ΠΊΠ°Π΄Ρ€Π° 30 Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅: