ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ упорядочивания. 
ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ этой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ BSPΠ΄Π΅Ρ€Π΅Π²ΡŒΡ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ряда Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡. Рассмотрим Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ: Π²Ρ‹Π±Ρ€Π°Π½ΠΎ пСрспСктивноС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π΅ Π²ΡΠ΅ пространство, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΅Π³ΠΎ Ρ‡Π°ΡΡ‚ΡŒ, Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ Π² ΡƒΡΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Π΅ видимости. Π’ΠΎΠ³Π΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ BSP-Π΄Π΅Ρ€Π΅Π²Π° ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ всС Π³Ρ€Π°Π½ΠΈ, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ упорядочивания. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° опрСдСлСния видимости Π² Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Π»Π΅ΠΆΠΈΡ‚ сортировка, Π²ΠΏΠΎΠ»Π½Π΅ СстСствСнно, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, проводящиС Ρ‚Π°ΠΊΡƒΡŽ сортировку явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ЦСлью ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° являСтся ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка всСх Π³Ρ€Π°Π½Π΅ΠΉ Π² Ρ‚Π°ΠΊΠΎΠΌ порядкС, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для ряда ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½ΠΎ ΠΏΡ€ΠΈ этом ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ Π½Π°Π±ΠΎΡ€Ρ‹ Π³Ρ€Π°Π½Π΅ΠΉ, ΠΊΠΎΠ³Π΄Π° Π½ΠΈΠΊΠ°ΠΊΠΎΠ΅ упорядочСниС Π³Ρ€Π°Π½Π΅ΠΉ Π½Π΅ Π΄Π°ΡΡ‚ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ изобраТСния (рис. 7.13). Однако достаточно Ρ€Π°Π·Ρ€Π΅Π·Π°Ρ‚ΡŒ всСго ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΡΡ‚ΠΈΡ… Π³Ρ€Π°Π½Π΅ΠΉ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠ΅ΡΡ ΠΏΡ€ΠΈ этом Π³Ρ€Π°Π½ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ.

Π‘Π»ΡƒΡ‡Π°ΠΉ, ΠΊΠΎΠ³Π΄Π° Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ нСльзя ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π½ΠΈΡŽ, ΠΈΡ… Π²Ρ‹Π²ΠΎΠ΄ Π² любом порядкС даст Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Рис. 7.13. Π‘Π»ΡƒΡ‡Π°ΠΉ, ΠΊΠΎΠ³Π΄Π° Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ нСльзя ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π½ΠΈΡŽ, ΠΈΡ… Π²Ρ‹Π²ΠΎΠ΄ Π² Π»ΡŽΠ±ΠΎΠΌ порядкС даст Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² упорядочивания являСтся Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊΠ° (painters algorithm). Подобно Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊ сначала рисуСт Π±ΠΎΠ»Π΅Π΅ дальниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° ΠΏΠΎΠ²Π΅Ρ€Ρ… Π½ΠΈΡ… — Π±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΈΠ΅, Π΄Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортируСт всС Π³Ρ€Π°Π½ΠΈ ΠΏΠΎ ΡΡ‚Π΅ΠΏΠ΅Π½ΠΈ ΠΈΡ… ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΎΡ‚ Ρ†Π΅Π½Ρ‚Ρ€Π° проСктирования (Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Ρ, ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹) ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΡ…, начиная с ΡΠ°ΠΌΡ‹Ρ… Π΄Π°Π»ΡŒΠ½ΠΈΡ… ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ самыми Π±Π»ΠΈΠ·ΠΊΠΈΠΌΠΈ (Ρ‚Π°ΠΊΠΎΠ΅ упорядочиваниС называСтся back-to-front).

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ для сортировки массива всСх Π³Ρ€Π°Π½Π΅ΠΉ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ приблиТСния ΠΊ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ проСктирования ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ qsort ΠΈΠ»ΠΈ std: sort. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ расстояния ΠΎΡ‚ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π΄ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π° проСктирования Π±Π΅Ρ€ΡƒΡ‚ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ проСктирования ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π³Ρ€Π°Π½ΠΈ. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ‡Π°Ρ‰Π΅ всСго выступаСт ΠΈΠ»ΠΈ пСрвая Π²Π΅Ρ€ΡˆΠΈΠ½Π° Π³Ρ€Π°Π½ΠΈ, ΠΈΠ»ΠΈ срСднСС арифмСтичСскоС всСх Π²Π΅Ρ€ΡˆΠΈΠ½ Π³Ρ€Π°Π½ΠΈ.

Π₯отя Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊΠ° ΠΈ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ изобраТСния (хотя Π±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ для Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Π³Ρ€Π°Π½Π΅ΠΉ Ρ‚Π°ΠΊΠΎΠ³ΠΎ упорядочивания ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Ρ Π±Ρ‹Ρ‚ΡŒ), Ρ‚Π΅ΠΌ нс ΠΌΠ΅Π½Π΅Π΅ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Одним ΠΈΠ· ΠΊΡ€Π°ΡΠΈΠ²Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΡΡ‚Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² получСния всСгда Π²Π΅Ρ€Π½ΠΎ упорядочСнных Π³Ρ€Π°Π½Π΅ΠΉ являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄, основанный Π½Π° Π΄Π΅Ρ€Π΅Π²ΡŒΡΡ…, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ пространства (BSP, Binary Space Partitioning). Основная идСя этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΊΡ€Π°ΠΉΠ½Π΅ проста. ΠŸΡƒΡΡ‚ΡŒ Ρƒ Π½Π°Ρ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π³Ρ€Π°Π½ΠΈ (ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°) А ΠΈ Π’, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ стороны ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ плоскости (рис. 7.14). Π’ΠΎΠ³Π΄Π° Π³Ρ€Π°Π½ΡŒ, Π½Π΅ Π»Π΅ΠΆΠ°Ρ‰Π°Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ полупространствС с Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ проСктирования, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ собой Π³Ρ€Π°Π½ΡŒ, которая Π»Π΅ΠΆΠΈΡ‚ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ полупространствС, Ρ‡Ρ‚ΠΎ ΠΈ Ρ†Π΅Π½Ρ‚Ρ€ проСктирования.

Π“Ρ€Π°Π½ΠΈ Π› ΠΈ Π’, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ стороны ΠΎΡ‚ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ плоскости.

Рис. 7.14. Π“Ρ€Π°Π½ΠΈ Π› ΠΈ Π’, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ стороны ΠΎΡ‚ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ плоскости

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

Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ мноТСства Π³Ρ€Π°Π½Π΅ΠΉ Π½Π° Π΄Π²Π° подмноТСства с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ плоскости.

Рис. 7.15. Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ мноТСства Π³Ρ€Π°Π½Π΅ΠΉ Π½Π° Π΄Π²Π° подмноТСства с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ плоскости Π”Π°Π»Π΅Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΡ…ся мноТСств Π³Ρ€Π°Π½Π΅ΠΉ повторяСм ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ: Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ ΠΈ Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅ΠΌ мноТСство Π³Ρ€Π°Π½Π΅ΠΉ Π½Π° Π΄Π²Π΅ части ΠΈ Ρ‚. Π΄. Π”Π°Π½Π½Ρ‹ΠΉ процСсс ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ ΠΏΡ€ΠΈΠ΄Π΅ΠΌ ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π°ΠΌ, состоящим Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π³Ρ€Π°Π½ΠΈ. На Ρ€ΠΈΡ. 7.16 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ шаги Ρ‚Π°ΠΊΠΎΠ³ΠΎ разбиСния.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ разбиСния мноТСства Π³Ρ€Π°Π½Π΅ΠΉ.

Рис. 7.16. ΠŸΡ€ΠΎΡ†Π΅ΡΡ разбиСния мноТСства Π³Ρ€Π°Π½Π΅ΠΉ.

Π­Ρ‚ΠΎΡ‚ процСсс разбиСния мноТСства Π³Ρ€Π°Π½Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ плоскостСй ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌ Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ, с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ связана ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ, проводящая ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅. На Ρ€ΠΈΡ. 7.17 приводится ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅Π΅ΡΡ Π΄Π΅Ρ€Π΅Π²ΠΎ для Π½Π°Π±ΠΎΡ€Π° Π³Ρ€Π°Π½Π΅ΠΉ ΠΈΠ· Ρ€ΠΈΡ. 7.15.

BSP-Π΄Π΅Ρ€Π΅Π²ΠΎ.

Рис. 7.17. BSP-Π΄Π΅Ρ€Π΅Π²ΠΎ

Π’Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ называСтся Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ разбиСния пространства, ΠΈΠ»ΠΈ просто BSP-Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ‚ ΠΎΡ‚ Π²Ρ‹Π±ΠΎΡ€Π° Ρ†Π΅Π½Ρ‚Ρ€Π° проСктирования. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» этого Π΄Π΅Ρ€Π΅Π²Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ описан с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ класса:

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ упорядочивания. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°.

Для Π²Ρ‹Π±ΠΎΡ€Π° Ρ€Π°Π·Π±ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ плоскости ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: выбираСтся ΠΎΠ΄Π½Π° ΠΈΠ· Π³Ρ€Π°Π½Π΅ΠΉ ΠΈ Π±Π΅Ρ€Π΅Ρ‚ся проходящая Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π΅ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, построСниС BSP-Π΄Π΅Ρ€Π΅Π²Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ описано с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ рСкурсивной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ упорядочивания. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°.

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π΄Π΅Ρ€Π΅Π²ΠΎ Π±Ρ‹Π»ΠΎ построСно, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° сцСны ΠΊΡ€Π°ΠΉΠ½Π΅ проста: Π΄Π΅Ρ€Π΅Π²ΠΎ обходят, начиная с ΠΊΠΎΡ€Π½Ρ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΠ·Π»Π΅ сначала ΠΏΠΎΡΠ΅Ρ‰Π°ΡŽΡ‚ ΠΏΠΎΠ΄ΡƒΠ·Π΅Π», Π½Π΅ Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ Π² Ρ‚ΠΎΠΌ полупространствС, Π³Π΄Π΅ находится Ρ†Π΅Π½Ρ‚Ρ€ проСктирования, Π·Π°Ρ‚Π΅ΠΌ — Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄ΡƒΠ·Π΅Π».

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ упорядочивания. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°.

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ BSPΠ΄Π΅Ρ€Π΅Π²Ρƒ, являСтся Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΠ·Π»Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·Π±ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ плоскости, ΠΏΠΎ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»Π΅ΠΏΠΈΠΏΠ΅Π΄Π° с Ρ€Π΅Π±Ρ€Π°ΠΌΠΈ, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ осям ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, содСрТащСго Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя всС Π³Ρ€Π°Π½ΠΈ ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π°. Для обозначСния ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»Π΅ΠΏΠΈΠΏΠ΅Π΄Π° с Ρ€Π΅Π±Ρ€Π°ΠΌΠΈ, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ осям ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ААВВ (Axis Aligned Bounding Box). НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ класса (Π±Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²):

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ этой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ BSPΠ΄Π΅Ρ€Π΅Π²ΡŒΡ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ряда Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡. Рассмотрим Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ: Π²Ρ‹Π±Ρ€Π°Π½ΠΎ пСрспСктивноС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π΅ Π²ΡΠ΅ пространство, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΅Π³ΠΎ Ρ‡Π°ΡΡ‚ΡŒ, Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ Π² ΡƒΡΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Π΅ видимости. Π’ΠΎΠ³Π΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ BSP-Π΄Π΅Ρ€Π΅Π²Π° ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ всС Π³Ρ€Π°Π½ΠΈ, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ проста: для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π½Π΅ Π½Π°Ρ…одится Π»ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»Π΅ΠΏΠΈΠΏΠ΅Π΄ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π²Π½Π΅ области видимости. Если это Ρ‚Π°ΠΊ, Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» (вмСстС со Π²ΡΠ΅ΠΌΠΈ Π΅Π³ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ) ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΆΠ΅ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС рСкурсивно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π΅Π³ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΡƒΠ·Π»Ρ‹. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Visitor.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ упорядочивания. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ упорядочивания. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°.

ИспользованиС BSP-Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² ΠΈΠ³Ρ€Π°Π»ΠΎ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² Ρ‚Π°ΠΊΠΈΡ… классичСских ΠΈΠ³Ρ€Π°Ρ…, ΠΊΠ°ΠΊ Doom, Quake ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ…. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ряда Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π½Π° ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΡ ΠΈΠ³Ρ€ΠΎΠΊΠ° с Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠ΅ΠΉ сцСны.

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€ΡΠ΄Π΅ ΠΈΠ³Ρ€ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° внутрСнностСй ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ, являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΡ€Ρ‚Π°Π»ΠΎΠ². ΠŸΠΎΡ€Ρ‚Π°Π» — это ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ½ΡΡ‚ΠΈΡŽ загораТиватСля. ΠŸΡ€ΠΎΡ‰Π΅ всСго ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΡ€Ρ‚Π°Π»Ρ‹ ΠΊΠ°ΠΊ ΠΎΠΊΠ½Π°, Π΄Π²Π΅Ρ€ΠΈ, ΠΏΡ€ΠΎΠ΅ΠΌΡ‹, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ сосСдних ΠΊΠΎΠΌΠ½Π°Ρ‚/ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ. ΠŸΠΎΡ€Ρ‚Π°Π»Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ всю сцСну ΠΊΠ°ΠΊ Π³Ρ€Π°Ρ„, ΡƒΠ·Π»Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹, Π° Ρ€Π΅Π±Ρ€Π°ΠΌΠΈ — ΠΏΠΎΡ€Ρ‚Π°Π»Ρ‹.

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΡ€Ρ‚Π°Π»ΠΎΠ² Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π» разбиСния всСй сцСны Π½Π° Π½Π°Π±ΠΎΡ€ Π²Ρ‹ΠΏΡƒΠΊΠ»Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² (ΠΊΠΎΠΌΠ½Π°Ρ‚) (рис. 7.18). Π’Ρ‹ΠΏΡƒΠΊΠ»ΠΎΡΡ‚ΡŒ позволяСт Π½Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π³Ρ€Π°Π½ΠΈ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π³Ρ€Π°Π½ΠΈ этой ΠΆΠ΅ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹. БСйчас это ΡƒΠΆΠ΅ Π½Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ: для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ опрСдСлСния видимости Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ 2-Π±ΡƒΡ„Π΅Ρ€Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ разбиСния сцСны Π½Π° Π²Ρ‹ΠΏΡƒΠΊΠ»Ρ‹Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠ³Ρ€Π°Π½Π½ΠΈΠΊΠΈ.

Рис. 7.18. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ разбиСния сцСны Π½Π° Π²Ρ‹ΠΏΡƒΠΊΠ»Ρ‹Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠ³Ρ€Π°Π½Π½ΠΈΠΊΠΈ.

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

Π‘ΠΎΠ»ΡŒΡˆΠΈΠΌ плюсом ΠΌΠ΅Ρ‚ΠΎΠ΄Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΈΠ΄Π½Ρ‹, ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅ΠΌ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹. ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° внутрСнностСй ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… сооруТСний ΠΈ ΠΌΠ°Π»ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… сцСн.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ упорядочивания. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°.
ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ