ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ½ΠΊΠ°Ρ. ΠΡΠ»ΠΈ Π½Π°ΠΌ ΠΊΠ°ΠΊΠΈΠΌ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠΏΠ»Π΅Π½Π½ΡΡ ΠΊΠ°Π½Π°Π²ΠΎΠΊ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΡΠ°ΡΠΌΠΈ ΡΡΡΡ ΠΌΠ΅Π½Π΅Π΅ ΠΎΡΡΡΡΠΌΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½ΠΈΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΎΡΡΡΡΡ ΠΊΡΠ°ΡΠ². Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠΎΠ³ΠΎ, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π² Π½Π°Ρ ΠΌΠ΅Ρ. ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΠΊΠΎΡΠ° bevel ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ±ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΡΡΡΠ΅ ΠΊΡΠ°Ρ, Π½ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ subsurface ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΌΠ΅ΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. ΠΠ΄Π΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: ΠΏΡΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠ°, Π²Π΅ΡΡΠΌΠ° Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠΌΡΡ ΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ·ΠΊΠΈΡ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ². ΠΡΠΈ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ ΠΈΡΠΏΠΎΡΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π½Π°ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° subsurface, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΈΡΡΠ½ΠΊΠ΅:
ΠΠ²Π΅ Π²Π΅ΡΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠΌΡΠ³ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ΄Π½Π° - ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²Π΅Ρ crease (ΡΠΊΠ»Π°Π΄ΠΊΠΈ) ΠΊ ΡΡΠ±ΡΠ°ΠΌ Π½Π°ΡΠ΅Π³ΠΎ Π²ΡΠ³ΡΠ°Π²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°, ΡΡΠΈΠΌ ΡΠ°ΠΌΡΠΌ Π²Π·Π²Π΅ΡΠΈΠ²Π°Ρ ΡΡΠΈ ΠΊΡΠ°Ρ ΡΠΈΠ»ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠΈ ΡΠ°ΡΡΠ΅ΡΠ΅ subsurface ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡ Π½Π°Ρ ΠΎΡ ΡΠ΅Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΡΠΈ ΠΊΡΠ°Ρ ΠΎΡΡΡΡΠΌΠΈ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ: Π»ΡΡΡΠ΅, Π½ΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ.
ΠΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠ±Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ» ΡΠΎΠ²Π½ΠΎ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π²ΡΠ³ΡΠ°Π²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°. ΠΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΊΠΎΠ»ΡΡΠΎ ΡΠ΅ΡΡΡΡΡ ΡΠ³ΠΎΠ»ΡΠ½ΡΡ Π³ΡΠ°Π½Π΅ΠΉ Π²ΠΎΠΊΡΡΠ³ ΡΠ΅ΠΊΡΡΠ°, Π·Π°ΡΡΠ°Π²Π»ΡΡ subsurface Π²ΠΎΠΊΡΡΠ³ ΡΠ΅ΠΊΡΡΠ° Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΡΡΠ΅, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½ΠΈΠΆΠ΅. Π Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΎΠ±Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΌΡ ΠΏΡΠΈΠΌΠ΅ΠΌΡΡ Π·Π° ΠΊΠ°ΠΆΠ΄ΡΡ Π·Π°Π΄Π°ΡΡ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ.
ΠΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Text3d Π² ΠΌΠ΅Ρ
ΠΠ±ΡΠ΅ΠΊΡ Text3d Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΊΡΠΈΠ²ΠΎΠΉ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠ»ΠΎΠΊ Π΄Π°Π½Π½ΡΡ , Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ ΡΡΡΠ»Π°Π΅ΡΡΡ - ΠΎΠ±ΡΠ΅ΠΊΡ ΠΡΠΈΠ²ΠΎΠΉ ΠΠ»Π΅Π½Π΄Π΅ΡΠ° (Curve), ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ°ΡΡΡΠΌ ΠΊΡΠΈΠ²ΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π² Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΊΡΠΈΠ²ΡΠ΅ Π² Π²Π΅ΡΡΠΈΠ½Ρ ΠΈ ΡΡΠ±ΡΠ°. ΠΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½Ρ Π² ΠΌΠΎΠ΄ΡΠ»ΡΡ Blender.Curve ΠΈ Blender.Geometry.
Π ΠΠ»Π΅Π½Π΄Π΅ΡΠ΅, ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Text3d ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Curve (ΠΡΠΈΠ²ΠΎΠΉ) Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ½ΠΊΠΎΠ΅ ΠΈ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΠ΅, ΡΠ΅ΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅. ΠΠ±ΡΠ΅ΠΊΡ Text3d - ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Curve, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² API ΠΠ»Π΅Π½Π΄Π΅ΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡ Text3d Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ Curve, ΠΊΠ°ΠΊ ΠΈ Π½Π΅Ρ Ρ Π½Π΅Π³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ²ΡΡΠΈΡ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎ? Π’Π°ΠΊ ΠΈ Π΅ΡΡΡ. ΠΠ°ΠΊ ΠΆΠ΅ ΡΠΎΠ³Π΄Π° ΠΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅ΡΠ΅ Π²ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ? ΠΠ΅ΡΡ ΡΠΎΠΊΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Text3d, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΌΡ Ρ Π½ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ Curve, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠΎΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
txt = ob.getData()
curve = Blender.Curve.Get(txt.getName())
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ txt, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Text3d-ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, txt.setText('foo')) ΠΈ curve, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Curve-ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, curve.getNumCurves()).
ΠΠ±ΡΠ΅ΠΊΡ Curve ΠΠ»Π΅Π½Π΄Π΅ΡΠ° ΡΠΎΡΡΠΎΡΡ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² CurNurb, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ ΠΊΡΠΈΠ²ΠΎΠΉ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π΄Π²ΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΡΠΈΠ²ΠΎΠΉ. ΠΠ°Π»Π΅Π½ΡΠΊΠ°Ρ Π±ΡΠΊΠ²Π° e, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΊΡΠΈΠ²ΠΎΠΉ. ΠΠ±ΡΠ΅ΠΊΡΡ CurNurb, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠΎΡΡΠΎΡΡ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ·Π»ΠΎΠ² ΠΈΠ»ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠΎΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΡ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΊΡΠΈΠ²ΠΎΠΉ. Π ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Text3d ΡΡΠΈ ΡΠ·Π»Ρ Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ BezTriple, ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Geometry ΠΠ»Π΅Π½Π΄Π΅ΡΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΠΌ ΡΡΠ½ΠΊΡΠΈΡ BezierInterp(), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΡΠΎΡΠΊΠ°ΠΌΠΈ. ΠΡΠΈ ΡΠΎΡΠΊΠΈ ΠΈ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΊΡΠΈΠ²ΠΎΠΉ Π² ΡΡΠΈΡ ΡΠΎΡΠΊΠ°Ρ (ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ handle, ΡΡΠΊΠΎΡΡΡ), ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² BezTriple. Π Π΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ (ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π² Tools.py) (ΠΡΠ° ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° Π·Π°Π²Π΅ΡΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΡΠ°, ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ Tools.py, ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΠΌΠΎΠΌ ΠΊΠΎ 2-ΠΉ Π³Π»Π°Π²Π΅, Π½Π°ΠΉΡΠΈ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°ΠΉΠ»Π΅ engrave.py β ΠΏΡΠΈΠΌ. ΠΏΠ΅Ρ.):
import Blender
from Blender.Geometry import BezierInterp as interpolate
from Blender.Mathutils import Vector as vec
def curve2mesh(c):
vlists=[]
for cn in c:
npoints = len(cn)
points=[]
first=True
for segment in range(npoints-1):
a=cn[segment].vec
b=cn[segment+1].vec
lastpoints = interpolate(vec(a[1]),vec(a[2]),
vec(b[0]), vec(b[1]),6)
if first:
first = False
points.append(lastpoints[0])
points.extend(lastpoints[1:])
if cn.isCyclic():
a=cn[-1].vec
b=cn[0].vec
lastpoints=interpolate(vec(a[1]), vec(a[2]),
vec(b[0]), vec(b[1]),6)
points.extend(lastpoints[:-2])
vlists.append(points)
return vlists
ΠΡΠ΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΄Π²Π° Π²Π°ΠΆΠ½ΡΡ Π°ΡΠΏΠ΅ΠΊΡΠ°. ΠΠ΅ΡΠ²Π°Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΡ. ΠΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π»ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ΡΠΊΠ»ΡΠΆΠ΅Π΅ ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ BezierInterp() Π² interpolate(), ΠΈ ΠΎΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ Π±Π΅ΡΡΡΡΡ ΠΎΡ Π΄Π²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² BezTriple, ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΠΈΡΡΠ΅ΠΌ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ BezTriple ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΏΠΈΡΠΊΡ ΠΈΠ· ΡΡΠ΅Ρ Π²Π΅ΠΊΡΠΎΡΠΎΠ²: Π²Ρ ΠΎΠ΄ΡΡΠ°Ρ ΡΡΠΊΠΎΡΡΡ, ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΎΡΠΊΠΈ, ΠΈ ΠΈΡΡ ΠΎΠ΄ΡΡΠ°Ρ ΡΡΠΊΠΎΡΡΡ (ΡΠΌΠΎΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ). ΠΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΈ ΠΈΡΡ ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΡΠΊΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΈ Π²Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΡΠΊΠΎΡΡΠΈ. ΠΡΡΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΎΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ interpolate().
ΠΡΠΎΡΠ°Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΡΡΠΎΠΊΠ° Π·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ Π·Π°ΠΌΠΊΠ½ΡΡΡΡ ΠΊΡΠΈΠ²ΡΡ - ΠΊΡΠΈΠ²ΡΡ , Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡ ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠΎΡΠΊΠΈ ΡΠ²ΡΠ·Π°Π½Ρ. ΠΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»ΡΡΠ°Π΅ΠΌ Π²ΡΠ΅Ρ ΠΊΡΠΈΠ²ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΠΌΠΈΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΡΠ΅ΠΊΡΡΠ΅. Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΠΏΠΈΡΠΊΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΎΡΠΊΠΈ (ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΈΠ· x, y, z ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ) Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΡΠΈΠ²ΠΎΠΉ. ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΡΠΈΠ²ΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ Π±ΡΠΊΠ²Π° e Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΡΠΈΡΡΠ°Ρ , ΠΈΠ»ΠΈ Π±ΡΠΊΠ²Π° o ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΠΊΡΠΈΠ²ΡΡ , ΠΎΠ΄Π½Π° Π·Π°Π΄Π°ΡΡ Π²Π½Π΅ΡΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ Π±ΡΠΊΠ²Ρ ΠΈ ΠΎΠ΄Π½Π° Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ. ΠΠ±ΡΠ΅ΠΊΡ Text3d, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ΅ΠΊΡΡ Foo, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· ΠΏΡΡΠΈ ΡΠΏΠΈΡΠΊΠΎΠ² - ΠΏΠ΅ΡΠ²ΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ Π±ΠΎΠ»ΡΡΡΡ Π±ΡΠΊΠ²Ρ F, Π° Π²ΡΠΎΡΠΎΠΉ ΠΈ ΡΡΠ΅ΡΠΈΠΉ Π±ΡΠ΄ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ Π΄Π»Ρ Π΄Π²ΡΡ ΠΊΡΠΈΠ²ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΡΡ Π±ΡΠΊΠ²Ρ o, ΡΠ°ΠΊ ΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΡΡΠΌ ΠΈ ΠΏΡΡΡΠΌ.
ΠΡΠ΄Π°Π²Π»ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΠ±Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°
ΠΡΠ΄Π°Π²Π»ΠΈΠ²Π°Π½ΠΈΠ΅ (Extrusion) ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, Π³Π΄Π΅ ΠΌΡ Π΄ΡΠ±Π»ΠΈΡΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΠ½Ρ (ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΠ΅ ΠΈΡ ΡΡΠ±ΡΠ°) ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌ ΠΈΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΌΡ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ ΡΡΠΈ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ Π²Π΅ΡΡΠΈΠ½ Ρ ΠΈΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π°ΠΌΠΈ Π½ΠΎΠ²ΡΠΌΠΈ ΡΡΠ±ΡΠ°ΠΌΠΈ, ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π½ΠΎΠ²ΡΡ Π³ΡΠ°Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΡΠΌΠΈ ΠΈ Π½ΠΎΠ²ΡΠΌΠΈ Π²Π΅ΡΡΠΈΠ½Π°ΠΌΠΈ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠΎΠΏΠΈΡΡ ΠΎΡΠ΅ΡΡΠ°Π½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠ°, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π±ΠΎΡΠΎΠ·Π΄ΠΊΡ Ρ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π½ΠΊΠ°ΠΌΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ extrude_selected_edges() Π² Tools.py ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ΅Ρ ΠΈ Π²Π΅ΠΊΡΠΎΡ ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΈ Π²ΡΠ΄Π°Π²ΠΈΡ Π²Π΅ΡΡΠΈΠ½Ρ Π½Π° Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΡΡΠ±ΡΠ°Ρ Π² ΠΌΠ΅ΡΠ΅ Π² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π²Π΅ΠΊΡΠΎΡΠ°, Π΄ΠΎΠ±Π°Π²Π»ΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ±ΡΠ° ΠΈ Π³ΡΠ°Π½ΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ° ΡΠ΅Ρ Π½ΠΈΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΡΠ°Π½ΡΡΠ΅, ΠΊΠΎΠ΄ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π·Π΄Π΅ΡΡ.
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ (Expanding) ΡΡΠ±Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°
ΠΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ±Π΅Ρ, ΡΠΎΡΠΌΠΈΡΡΡΡΠΈΡ Π·Π°ΠΌΠΊΠ½ΡΡΡΡ ΠΊΡΠΈΠ²ΡΡ (ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ), ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ», ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΎΠΊΡΡΠΆΠΈΡΡ ΡΡΠΈ ΡΡΠ±ΡΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ±Π΅ΡΠ½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π»ΡΡΡΠ΅Π΅ "Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅" Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° subsurface, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²ΡΠ·Π°ΡΡ Ρ Π½Π°ΡΠΈΠΌ ΠΌΠ΅ΡΠ΅ΠΌ. ΠΡΠΎ Π±ΡΠ» Π±Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ Π±Ρ Π²ΡΡΠΈΡΠ»ΡΡΡ ΡΡΠΎ Π² 3D, Π½ΠΎ, ΠΊ ΡΡΠ°ΡΡΡΡ, Π½Π°ΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠΌΠ΅ΡΡ Π²ΡΠ΅ ΡΠ²ΠΎΠΈ Π²Π΅ΡΡΠΈΠ½Ρ Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ xy (Π΄Π΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² Π½ΠΎΠ²ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°Ρ Text3d ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π»Π΅ΠΆΠ°Ρ Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ xy)..
ΠΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π΄Π²Π° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ - ΡΡΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄Π°ΡΠ»ΠΈΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΡΡΠ±Π΅ΡΠ½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠ½Π½ΠΎΠΉ Π½ΠΎΡΠΌΠ°Π»ΠΈ. ΠΠ΅ΡΡΠΈΠ½Π½Π°Ρ Π½ΠΎΡΠΌΠ°Π»Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΠ½ΠΈΠ΅ΠΉ, ΡΠ°Π·ΡΠ΅Π·Π°ΡΡΠ΅ΠΉ ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ ΡΠ³ΠΎΠ» ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΡΡΠ±ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»ΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ Π½Π°ΠΌΠΈ ΡΠΎΡΠΊΡ. ΠΡΠ»ΠΈ Π΄Π²Π° ΡΠ΅Π±ΡΠ° ΠΊΠΎΠ»Π»ΠΈΠ½Π΅Π°ΡΠ½Ρ (ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠΈ ΡΠ°ΠΊ), ΠΌΡ Π±Π΅ΡΠ΅ΠΌ Π·Π° Π²Π΅ΡΡΠΈΠ½Π½ΡΡ Π½ΠΎΡΠΌΠ°Π»Ρ Π»ΠΈΠ½ΠΈΡ, ΠΏΠ΅ΡΠΏΠ΅Π½Π΄ΠΈΠΊΡΠ»ΡΡΠ½ΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· ΡΡΠ±Π΅Ρ. ΠΠΎΠ·ΠΈΡΠΈΡ ΡΠΎΡΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Π² Π½ΠΎΠ²ΠΎΠΌ ΡΡΠ±Π΅ΡΠ½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅, Π±ΡΠ΄Π΅Ρ Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π° ΡΡΠΎΠΉ Π½ΠΎΡΠΌΠ°Π»ΠΈ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡΡΡ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π»ΠΈ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ Π½Π°ΡΡΠΆΡ ΠΈΠ»ΠΈ Π²Π½ΡΡΡΡ Π²Π΄ΠΎΠ»Ρ ΡΡΠΎΠΉ Π½ΠΎΡΠΌΠ°Π»ΠΈ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π½ΠΎΠ²ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ - Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΠΎΠ½Π° Π²Π½ΡΡΡΠΈ Π³ΡΠ°Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΠΌΡ Π±Π΅ΡΡΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.