ថ្នាក់មេ "បាល់ណូអែល" ធ្វើពីក្រដាសដោយដៃផ្ទាល់របស់អ្នក។ ស្វ៊ែរនៃត្រីកោណពីរ

ត្រីកោណរាងស្វ៊ែរ និងកម្មវិធីរបស់វា។

ត្រីកោណរាងស្វ៊ែរ- រូបធរណីមាត្រលើផ្ទៃនៃស្វ៊ែរ ដែលបង្កើតឡើងដោយចំនុចប្រសព្វនៃរង្វង់ធំបី។ រង្វង់ធំបីនៅលើផ្ទៃនៃស្វ៊ែរដែលមិនប្រសព្វគ្នានៅចំណុចមួយបង្កើតបានជាត្រីកោណស្វ៊ែរចំនួនប្រាំបី។ ត្រីកោណរាងស្វ៊ែរ ដែលភាគីទាំងអស់មានតិចជាងពាក់កណ្តាលនៃរង្វង់ធំត្រូវបានគេហៅថា អយល័រ។

ផ្នែកម្ខាងនៃត្រីកោណស្វ៊ែរត្រូវបានវាស់ដោយតម្លៃនៃមុំកណ្តាលដោយផ្អែកលើវា។ មុំនៃត្រីកោណស្វ៊ែរមួយត្រូវបានវាស់ដោយតម្លៃនៃមុំ dihedral រវាងយន្តហោះដែលជ្រុងនៃមុំនេះស្ថិតនៅ។ ទំនាក់ទំនងរវាងធាតុនៃត្រីកោណស្វ៊ែរត្រូវបានសិក្សាដោយត្រីកោណមាត្រស្វ៊ែរ។

លក្ខណៈសម្បត្តិនៃត្រីកោណរាងស្វ៊ែរ៖

  1. បន្ថែមពីលើលក្ខខណ្ឌទាំងបីសម្រាប់សមភាពនៃត្រីកោណយន្តហោះ មួយទៀតគឺជាការពិតសម្រាប់ត្រីកោណស្វ៊ែរ៖ ត្រីកោណស្វ៊ែរពីរគឺស្មើគ្នា ប្រសិនបើមុំដែលត្រូវគ្នារបស់វាស្មើគ្នា។
  2. សម្រាប់ជ្រុងនៃត្រីកោណស្វ៊ែរ វិសមភាពត្រីកោណចំនួន 3 រក្សា៖ ភាគីនីមួយៗតិចជាងផលបូកនៃភាគីទាំងពីរ ហើយធំជាងភាពខុសគ្នារបស់វា។
  3. ផលបូកនៃភាគីទាំងអស់ a + b + c តែងតែតិចជាង 2πR ។
  4. បរិមាណ 2πR − (a + b + c) ត្រូវបានគេហៅថាពិការភាពស្វ៊ែរ
  5. ផលបូកនៃមុំនៃត្រីកោណរាងស្វ៊ែរ s = α + β + γ តែងតែតិចជាង 3π និងធំជាងπ
  6. បរិមាណត្រូវបានគេហៅថា លើសស្វ៊ែរ ឬលើសស្វ៊ែរ
  7. តំបន់នៃត្រីកោណស្វ៊ែរត្រូវបានកំណត់ដោយរូបមន្ត។
  8. មិនដូចត្រីកោណរាងសំប៉ែតទេ ត្រីកោណរាងស្វ៊ែរអាចមានមុំ 90° ពីរ ឬសូម្បីតែបី។

ក្នុងចំណោមពហុកោណស្វ៊ែរទាំងអស់ អ្វីដែលគួរឱ្យចាប់អារម្មណ៍បំផុតគឺ ត្រីកោណស្វ៊ែរ។ រង្វង់ដ៏អស្ចារ្យចំនួនបី ប្រសព្វគ្នាជាគូនៅចំនុចពីរ បង្កើតជាត្រីកោណស្វ៊ែរចំនួនប្រាំបីនៅលើស្វ៊ែរ។ ដោយដឹងពីធាតុ (ជ្រុង និងមុំ) នៃធាតុណាមួយនៃពួកវា អ្នកអាចកំណត់ធាតុនៃធាតុផ្សេងទៀតទាំងអស់ ដូច្នេះសូមពិចារណាទំនាក់ទំនងរវាងធាតុនៃពួកវាមួយ ដែលភាគីទាំងអស់មានតិចជាងពាក់កណ្តាលនៃរង្វង់ធំ។ ជ្រុងនៃត្រីកោណត្រូវបានវាស់ដោយមុំសំប៉ែតនៃមុំ trihedral OABS មុំនៃត្រីកោណត្រូវបានវាស់ដោយមុំ dihedral នៃមុំ trihedral ដូចគ្នា សូមមើលរូបភព។

លក្ខណៈសម្បត្តិនៃត្រីកោណស្វ៊ែរមានភាពខុសគ្នាតាមវិធីជាច្រើនពីលក្ខណៈសម្បត្តិនៃត្រីកោណនៅក្នុងយន្តហោះ។ ដូច្នេះចំពោះករណីបីដែលគេស្គាល់ច្បាស់នៃភាពស្មើគ្នានៃត្រីកោណ rectilinear, ទីបួនត្រូវបានបន្ថែម: ត្រីកោណពីរ ABC និង A`B`C` គឺស្មើគ្នាប្រសិនបើមុំបី PA = RA`, PB = PB`, PC = PC` គឺស្មើគ្នា។ ដូច្នេះ ត្រីកោណស្រដៀងគ្នាមិនមាននៅលើស្វ៊ែរទេ លើសពីនេះទៅទៀត នៅក្នុងធរណីមាត្រស្វ៊ែរ មិនមានគោលគំនិតនៃភាពស្រដៀងគ្នាទេ ចាប់តាំងពី មិនមានការផ្លាស់ប្តូរដែលផ្លាស់ប្តូរចម្ងាយទាំងអស់ដោយចំនួនដងដូចគ្នា (មិនស្មើនឹង 1) ។ លក្ខណៈពិសេសទាំងនេះត្រូវបានផ្សារភ្ជាប់ជាមួយនឹងការរំលោភលើ axiom Euclidean អំពីបន្ទាត់ប៉ារ៉ាឡែល ហើយក៏មាននៅក្នុងធរណីមាត្ររបស់ Lobachevsky ផងដែរ។ ត្រីកោណដែលមានធាតុស្មើគ្នា និងទិសផ្សេងគ្នាត្រូវបានគេហៅថាស៊ីមេទ្រី ដូចជាឧទាហរណ៍ ត្រីកោណ AC`C និង BCC`

ផលបូកនៃមុំនៃត្រីកោណស្វ៊ែរណាមួយតែងតែធំជាង 180°។ ភាពខុសគ្នា RA + RV + RS - p \u003d ឃ (វាស់ជារ៉ាដ្យង់) - គឺជាតម្លៃវិជ្ជមានហើយត្រូវបានគេហៅថាស្វ៊ែរលើសនៃត្រីកោណស្វ៊ែរដែលបានផ្តល់ឱ្យ។ ផ្ទៃនៃត្រីកោណស្វ៊ែរ៖ S = R2 d ដែល R ជាកាំនៃស្វ៊ែរ ហើយ d ជាស្វ៊ែរលើស។ រូបមន្តនេះត្រូវបានបោះពុម្ពជាលើកដំបូងដោយជនជាតិហូឡង់ A. Girard ក្នុងឆ្នាំ 1629 ហើយដាក់ឈ្មោះតាមគាត់។

ប្រសិនបើយើងពិចារណាអង្កត់ទ្រូងជាមួយមុំ a បន្ទាប់មកនៅ 226 = 2p / n (n គឺជាចំនួនគត់) ស្វ៊ែរអាចត្រូវបានកាត់ចូលទៅក្នុង n ច្បាប់ចម្លងនៃ digon យ៉ាងពិតប្រាកដ ហើយផ្ទៃនៃស្វ៊ែរគឺ 4pR2 = 4p នៅ R = 1 ដូច្នេះផ្ទៃនៃឌីហ្គុនគឺ 4p/n = 2a ។ រូបមន្តនេះក៏ពិតសម្រាប់ a = 2pt/n ហើយដូច្នេះគឺពិតសម្រាប់ a ។ ប្រសិនបើយើងបន្តជ្រុងនៃត្រីកោណស្វ៊ែរ ABC និងបង្ហាញពីតំបន់នៃស្វ៊ែរក្នុងន័យនៃតំបន់នៃអង្កត់ទ្រូងដែលបានបង្កើតឡើងក្នុងករណីនេះជាមួយនឹងមុំ A, B, C និងតំបន់របស់វានោះយើងអាចមកដល់ខាងលើ។ រូបមន្ត Girard ។

ដោយ ត្រីកោណស្វ៊ែរ មានន័យថា ត្រីកោណនៅលើផ្ទៃនៃស្វ៊ែរ ផ្សំឡើងដោយធ្នូនៃរង្វង់ធំ - នោះគឺរង្វង់បែបនេះ ចំណុចកណ្តាលដែលជាចំណុចកណ្តាលនៃស្វ៊ែរ។ មុំនៃត្រីកោណស្វ៊ែរ គឺជាមុំរវាងតង់សង់ទៅជ្រុងរបស់វា ដែលគូសនៅចំនុចកំពូលរបស់វា។ ដូចជាមុំនៃត្រីកោណធម្មតា ពួកវាមានចាប់ពី 0 ដល់ 180°។ មិនដូចត្រីកោណរាងសំប៉ែតទេ ត្រីកោណរាងស្វ៊ែរមិនមានមុំបូកស្មើនឹង 180° ទេ ប៉ុន្តែមានច្រើនទៀត៖ វាងាយស្រួលក្នុងការផ្ទៀងផ្ទាត់វាដោយពិចារណាឧទាហរណ៍ ត្រីកោណដែលបង្កើតឡើងដោយធ្នូនៃ meridians ពីរ និងខ្សែអេក្វាទ័រនៅលើផែនដី។ ៖ ទោះបីជា meridians មកប៉ះប៉ូលក៏ដោយ ពួកវាទាំងពីរគឺកាត់កែងទៅនឹងអេក្វាទ័រ ហើយដូច្នេះត្រីកោណនេះមានមុំខាងស្តាំពីរ!

ត្រីកោណរាងស្វ៊ែរអាចមានមុំខាងស្តាំពីរ

រួចទៅហើយ Varahamihira ឥណ្ឌា (សតវត្សទី 5-6) ដែលជាគណិតវិទូអារ៉ាប់ និងតារាវិទូពីសតវត្សទី 9 ។ (Sabit ibn Korra, al-Battani) និងក្នុងចំណោមគណិតវិទូលោកខាងលិច ចាប់ផ្តើមពី Regiomontanus (សតវត្សទី XV) មានទ្រឹស្តីបទដ៏អស្ចារ្យមួយស្តីពីត្រីកោណស្វ៊ែរក្នុងទម្រង់ផ្សេងៗ។ នេះជារបៀបដែលវាអាចត្រូវបានបង្កើតជាសញ្ញាណទំនើប៖

cosa = cosbcosc + sinbsinccosA ។ ទ្រឹស្តីបទកូស៊ីនុសស្វ៊ែរគឺមានសារៈសំខាន់ខ្លាំងណាស់សម្រាប់ទាំងតារាសាស្ត្រ និងភូមិសាស្ត្រ។ ទ្រឹស្តីបទនេះអនុញ្ញាតឱ្យប្រើកូអរដោនេនៃទីក្រុងពីរ A និង B ដើម្បីស្វែងរកចម្ងាយរវាងពួកវា។ លើសពីនេះទៀតទ្រឹស្តីបទកូស៊ីនុសរាងស្វ៊ែរបានជួយគណិតវិទូនៅក្នុងប្រទេសឥស្លាមក្នុងការដោះស្រាយបញ្ហាជាក់ស្តែងមួយទៀត៖ នៅក្នុងទីក្រុងដែលមានកូអរដោនេដែលបានផ្តល់ឱ្យ ស្វែងរកទិសដៅទៅកាន់ទីក្រុងដ៏បរិសុទ្ធនៃ Mecca (អ្នកកាន់សាសនាឥស្លាមគ្រិស្តអូស្សូដក់ទាំងអស់ត្រូវអធិស្ឋានប្រាំដងក្នុងមួយថ្ងៃក្នុងទិសដៅរបស់ Mecca) ។ . នៅពេលដោះស្រាយបញ្ហានេះដោយពិចារណាទីក្រុង B ជា Mecca វាត្រូវបានគេតម្រូវឱ្យស្វែងរកមុំ A នៃត្រីកោណដូចគ្នា។

ទំព័រមួយពី "ការប្រមូលច្បាប់សម្រាប់វិទ្យាសាស្ត្រតារាសាស្ត្រ" សតវត្សទី 11 អ្នកនិពន្ធមិនស្គាល់។

នៅក្នុងវិស័យតារាសាស្ត្រ ទ្រឹស្ដីកូស៊ីនុសស្វ៊ែរ អនុញ្ញាតឱ្យអ្នកផ្លាស់ទីពីប្រព័ន្ធកូអរដោនេមួយនៅលើស្វ៊ែរសេឡេស្ទាលទៅមួយទៀត។ ប្រព័ន្ធបីប្រភេទនេះត្រូវបានគេប្រើញឹកញាប់បំផុត៖ នៅក្នុងមួយ អេក្វាទ័រសេឡេស្ទាលដើរតួជាអេក្វាទ័រ ហើយប៉ូលនៃពិភពលោកដើរតួជាប៉ូល ដែលការបង្វិលប្រចាំថ្ងៃដែលអាចមើលឃើញនៃពន្លឺកើតឡើង។ នៅមួយទៀត អេក្វាទ័រ គឺជាសូរ្យគ្រាស - រង្វង់ដែលចលនាដែលអាចមើលឃើញនៃព្រះអាទិត្យប្រឆាំងនឹងផ្ទៃខាងក្រោយនៃផ្កាយកើតឡើងក្នុងកំឡុងឆ្នាំ។ នៅក្នុងទីបីតួនាទីរបស់អេក្វាទ័រត្រូវបានលេងដោយផ្តេកហើយតួនាទីរបស់ប៉ូលត្រូវបានលេងដោយ zenith និង nadir ។ ជាពិសេស ដោយសារទ្រឹស្តីបទកូស៊ីនុសរាងស្វ៊ែរ គេអាចគណនាកម្ពស់ព្រះអាទិត្យពីលើផ្តេកនៅពេលផ្សេងគ្នា និងនៅថ្ងៃផ្សេងៗគ្នានៃឆ្នាំ។

Sails នៅក្នុងស្ថាបត្យកម្មគឺជាត្រីកោណរាងស្វ៊ែរដែលផ្តល់នូវការផ្លាស់ប្តូរពីទំហំ dome ការ៉េទៅទំហំ dome ។ Sail, pandative (ពី pendentif បារាំង) - ផ្នែកមួយនៃតុដេកដែលជាធាតុមួយនៃរចនាសម្ព័ន្ធ dome ដែលតាមរយៈនោះការផ្លាស់ប្តូរពីមូលដ្ឋានចតុកោណកែងទៅពិដាន dome ឬស្គររបស់វាត្រូវបានធ្វើឡើង។ ក្ដោងមានរាងត្រីកោណរាងស្វ៊ែរ ដោយចុងរបស់វាចុះក្រោម ហើយបំពេញចន្លោះរវាងធ្នូនិទាឃរដូវដែលតភ្ជាប់សសរដែលនៅជាប់គ្នានៃទីលានលំហ។ មូលដ្ឋាននៃត្រីកោណរាងស្វ៊ែរនៃក្ដោងរួមគ្នាបង្កើតជារង្វង់មួយ ហើយចែកចាយបន្ទុកនៃលំហនៅតាមបណ្តោយបរិវេណនៃធ្នូ។

Dome នៅលើក្ដោង គំនូរក្ដោង

លោក George Nelson

"អ្នករចនាអាចសម្រាក និងមានភាពសប្បាយរីករាយខ្លះៗ លទ្ធផលអាចជារឿងកំប្លែង ភាពសប្បាយរីករាយ។ វាពិតជាអស្ចារ្យណាស់ ដែលជាញឹកញាប់វាមានភាពសប្បាយរីករាយយ៉ាងខ្លាំង។" George Nelson

George Nelson គឺជាអ្នករចនាម៉ូដជនជាតិអាមេរិក ស្ថាបត្យករ អ្នករិះគន់ និងទ្រឹស្តីរចនា។ (1908, Hartford, Connecticut - 1986, ញូវយ៉ក)

គាត់បានរចនាគ្រឿងបំភ្លឺ នាឡិកា គ្រឿងសង្ហារិម ការវេចខ្ចប់ និងបានចូលរួមក្នុងការរចនាពិព័រណ៍។

គម្រោងរចនាដ៏ល្បីល្បាញបំផុតរបស់លោក George Nelson គឺការធ្វើរចនាប័ទ្មយ៉ាងប៉ិនប្រសប់នៃរាងធរណីមាត្រនៅក្នុងស្មារតីសិល្បៈ op ឬអរូបីធរណីមាត្រ។

អ្នករចនាបង្កើតរូបរាងកៅអីខ្មៅដ៏ល្បីល្បាញរបស់គាត់នៅលើមូលដ្ឋាននៃរាងត្រីកោណរាងស្វ៊ែរដែលត្រូវបានគេប្រើយ៉ាងទូលំទូលាយនៅក្នុងរចនាសម្ព័ន្ធស្ថាបត្យកម្មនៃរចនាសម្ព័ន្ធ domed ។ ជាពិសេសនៅក្នុងវិហារ Byzantine និងរុស្ស៊ី ត្រីកោណរាងស្វ៊ែរបែបនេះត្រូវបានគេហៅថា "ទូក" ។ សូមអរគុណដល់ "sail" ការផ្លាស់ប្តូរយ៉ាងរលូនពីការគាំទ្រ dome ទៅ dome ត្រូវបានអនុវត្ត។

George Nelson (George Harold Nelson, 1908-1986)

ការឆ្លាក់ Escher

រង្វង់មូល។ ឆ្នាំ 1935 ។ ការឆ្លាក់បញ្ចប់ 24 គុណនឹង 24 សង់ទីម៉ែត្រ។

ស្វ៊ែរប្រមូលផ្តុំប្រហោងចំនួនបួនត្រូវបានបំភ្លឺដោយប្រភពពន្លឺកណ្តាល។ ស្វ៊ែរនីមួយៗមានក្រឡាចត្រង្គដែលបង្កើតឡើងដោយរង្វង់ប្រសព្វធំចំនួនប្រាំបួន។ ពួកគេបែងចែកផ្ទៃស្វ៊ែរទៅជា 48 ត្រីកោណស្វ៊ែរស្រដៀងគ្នា។ Maurits Cornelis Escher (ហូឡង់។ Maurits Cornelis ថ្ងៃទី 17 ខែមិថុនា ឆ្នាំ 1898, Leeuwarden, ប្រទេសហូឡង់ - ថ្ងៃទី 27 ខែមីនា ឆ្នាំ 1972, Laren, ប្រទេសហូឡង់) - វិចិត្រករក្រាហ្វិកជនជាតិហូឡង់។

ការអនុវត្តត្រីកោណស្វ៊ែរ៖

  1. ការប្រើប្រាស់ត្រីកោណស្វ៊ែរក្នុងក្រាហ្វិក 3D
  2. ក្នុងវិស័យតារាសាស្ត្រ
  3. នៅក្នុងភូមិសាស្ត្រ។ ទ្រឹស្តីបទត្រីកោណស្វ៊ែរអនុញ្ញាតឱ្យអ្នកប្រើកូអរដោនេនៃទីក្រុងពីរ A និង B ដើម្បីរកចម្ងាយរវាងពួកវា។
  4. នៅក្នុងស្ថាបត្យកម្ម
  5. រចនាកៅអីដោយ George Nelson
  6. ក្នុងការឆ្លាក់

ត្រីកោណមាត្រស្វ៊ែរ

ត្រីកោណរាងស្វ៊ែរ។នៅលើផ្ទៃបាល់ ចម្ងាយខ្លីបំផុតរវាងចំណុចពីរត្រូវបានវាស់តាមរង្វង់ធំ ពោលគឺរង្វង់ដែលយន្តហោះឆ្លងកាត់កណ្តាលបាល់។ ចំនុចកំពូលនៃត្រីកោណរាងស្វ៊ែរគឺជាចំនុចប្រសព្វនៃកាំរស្មីទាំងបីដែលផុសចេញពីកណ្តាលបាល់ និងផ្ទៃស្វ៊ែរ។ ភាគី , , នៃត្រីកោណស្វ៊ែរ គឺជាមុំទាំងនោះរវាងកាំរស្មីដែលតូចជាង (ប្រសិនបើមុំមួយក្នុងចំណោមមុំទាំងនេះស្មើគ្នា នោះត្រីកោណស្វ៊ែរនឹងខូចទៅជាពាក់កណ្តាលរង្វង់នៃរង្វង់ដ៏អស្ចារ្យមួយ)។ ជ្រុងនីមួយៗនៃត្រីកោណត្រូវគ្នាទៅនឹងធ្នូនៃរង្វង់ធំមួយនៅលើផ្ទៃបាល់ (សូមមើលរូប)។

ជ្រុង , , ត្រីកោណរាងស្វ៊ែរទល់មុខ , , រៀងគ្នា គឺតាមនិយមន័យតូចជាង មុំរវាងធ្នូនៃរង្វង់ធំដែលត្រូវគ្នានឹងជ្រុងនៃត្រីកោណ ឬមុំរវាងប្លង់ដែលកំណត់ដោយកាំរស្មីទាំងនេះ។

ត្រីកោណមាត្រស្វ៊ែរទាក់ទងនឹងការសិក្សាអំពីទំនាក់ទំនងរវាងជ្រុង និងមុំនៃត្រីកោណស្វ៊ែរ (ឧទាហរណ៍ លើផ្ទៃផែនដី និងលើផ្ទៃសេឡេស្ទាល)។ ទោះជាយ៉ាងណាក៏ដោយ អ្នករូបវិទ្យា និងវិស្វករនៅក្នុងបញ្ហាជាច្រើនចូលចិត្តប្រើការបំប្លែងការបង្វិលជាជាងត្រីកោណមាត្រស្វ៊ែរ។

លក្ខណៈសម្បត្តិនៃត្រីកោណស្វ៊ែរ។តាមនិយមន័យ និងជ្រុងនីមួយៗនៃត្រីកោណស្វ៊ែរគឺតិចជាង .

ធរណីមាត្រនៅលើផ្ទៃនៃបាល់គឺមិនមែន Euclidean; នៅគ្រប់ត្រីកោណស្វ៊ែរ ផលបូកនៃជ្រុងគឺនៅចន្លោះ 0 និង ផលបូកនៃមុំគឺនៅចន្លោះ និង . នៅគ្រប់ត្រីកោណស្វ៊ែរ មុំធំជាងស្ថិតនៅទល់មុខផ្នែកធំជាង។ ផលបូកនៃជ្រុងណាមួយគឺធំជាងភាគីទីបី ផលបូកនៃមុំទាំងពីរគឺតិចជាងបូកមុំទីបី។

ត្រីកោណស្វ៊ែរ និងរូបមន្តមូលដ្ឋាននៃត្រីកោណមាត្រស្វ៊ែរ

បញ្ហាជាច្រើននៃតារាសាស្ត្រដែលទាក់ទងនឹងទីតាំងជាក់ស្តែង និងចលនានៃសាកសពសេឡេស្ទាលត្រូវបានកាត់បន្ថយទៅជាការដោះស្រាយត្រីកោណស្វ៊ែរ។

ត្រីកោណរាងស្វ៊ែរ គឺជារូប ABC នៅលើផ្ទៃនៃស្វ៊ែរ ដែលបង្កើតឡើងដោយធ្នូនៃរង្វង់ធំបី (រូបភាព 15) ។

មុំ​នៃ​ត្រីកោណ​ស្វ៊ែរ​គឺ​ជា​មុំ​ dihedral រវាង​ប្លង់​នៃ​រង្វង់​ធំ​ដែល​បង្កើត​ជា​ជ្រុង​នៃ​ត្រីកោណ​ស្វ៊ែរ។ មុំទាំងនេះត្រូវបានវាស់ដោយមុំសំប៉ែតនៅចំនុចកំពូលនៃត្រីកោណរវាងតង់សង់ទៅជ្រុងរបស់វា។

ត្រីកោណត្រូវបានពិចារណាជាធម្មតា មុំ និងជ្រុងដែលមានតិចជាង 180°។ សម្រាប់ត្រីកោណរាងស្វ៊ែរបែបនេះ ផលបូកនៃមុំតែងតែធំជាង 180° ប៉ុន្តែតិចជាង 540° ហើយផលបូកនៃជ្រុងតែងតែតិចជាង 360°។ ភាពខុសគ្នារវាងផលបូកនៃមុំទាំងបីនៃត្រីកោណស្វ៊ែរ និង 180° ត្រូវបានគេហៅថាស្វ៊ែរលើស σ, i.e.

σ = DA + DB + DC - 180 °។

តំបន់នៃត្រីកោណរាងស្វ៊ែរ s គឺ

ដែល R គឺជាកាំនៃស្វ៊ែរនៅលើផ្ទៃដែលត្រីកោណត្រូវបានបង្កើតឡើង។

ដូច្នេះ ត្រីកោណស្វ៊ែរ ខុសគ្នាក្នុងលក្ខណៈរបស់វាពីផ្ទះល្វែងមួយ ហើយវាមិនអាចអនុវត្តរូបមន្តត្រីកោណមាត្រទៅវានៅលើយន្តហោះបានទេ។

យកត្រីកោណរាងស្វ៊ែរ ABC (រូបភាពទី 15) ដែលបង្កើតនៅលើស្វ៊ែរនៃកាំ R ហើយដាក់កណ្តាលនៅចំណុច O ។

ពីចំនុចកំពូល A យើងគូរតង់សង់ AD និង AE ទៅជ្រុង b និង c រហូតដល់ពួកវាប្រសព្វគ្នាជាមួយផ្នែកបន្ថែមនៃ radii OS និង 0B ដែលស្ថិតនៅក្នុងប្លង់តែមួយជាមួយនឹងតង់សង់ដែលត្រូវគ្នា។ ការភ្ជាប់ចំណុចប្រសព្វនៃ D និង E យើងទទួលបានត្រីកោណរាងសំប៉ែតពីរ ADE និង ODE ជាមួយនឹងផ្នែករួម DE ។ ការអនុវត្តទ្រឹស្តីបទធរណីមាត្របឋមទៅនឹងត្រីកោណទាំងនេះ យើងសរសេរ៖

DE 2 \u003d OD 2 + OE 2 - 2OD × OE × cos a,

DE 2 \u003d AD 2 + AE 2 - 2AD × AE × cos A ។

ដោយដកសមីការទីពីរពីទីមួយ យើងទទួលបាន៖

2OD × OE × cos a \u003d OD 2 - AD 2 + OE 2 - AE 2 + 2AD × AE × cos A. (1.31)

ពីត្រីកោណផ្ទះល្វែងមុំខាងស្តាំ OAE និង OAD វាដូចខាងក្រោម:

OD 2 -AD 2 =R 2 ;OE 2 -AE 2 =R 2 ;

AD = Rtg ខ ; AE = Rtg s;

ការជំនួសទំនាក់ទំនងទាំងនេះទៅជារូបមន្ត (1.31) និងធ្វើឱ្យមានការកាត់បន្ថយ និងការផ្ទេរដែលត្រូវគ្នា យើងទទួលបាន

cos a \u003d cos b cos c + sin b sin c cos A, (1.32)

ទាំងនោះ។ កូស៊ីនុសនៃជ្រុងម្ខាងនៃត្រីកោណស្វ៊ែរគឺស្មើនឹងផលគុណនៃកូស៊ីនុសនៃជ្រុងម្ខាងទៀតរបស់វា បូកនឹងផលគុណនៃស៊ីនុសនៃជ្រុងដូចគ្នា និងកូស៊ីនុសនៃមុំរវាងពួកវា។

រូបមន្ត (1.32) អាចត្រូវបានសរសេរសម្រាប់ជ្រុងណាមួយនៃត្រីកោណ។ ចូរយើងសរសេរវាឧទាហរណ៍សម្រាប់ចំហៀង ខ៖

cos b = cos ជាមួយ cos a + sin ជាមួយ sin a cos B

ហើយការជំនួស cos a ចូលទៅក្នុងវាពីរូបមន្ត (1.32) យើងទទួលបាន

cos b = cos c (cos b cos c + sin b sin c cos A) + sin c sin a cos B ។

ការពង្រីកតង្កៀបនិងផ្លាស់ទីពាក្យដំបូងនៃផ្នែកខាងស្តាំទៅខាងឆ្វេងយើងនឹងមាន:

cos b (1 - cos 2 s) \u003d sin b sin ជាមួយ cos ជាមួយ cos A + sin c sin a cos B ។

ការជំនួស (1 - cos 2 s) ជាមួយ sin 2 s និងកាត់បន្ថយអ្វីគ្រប់យ៉ាងដោយ sin c ទីបំផុតយើងទទួលបាន

sin a cos B \u003d sinc cos b - cos c sin b cos A, (1.33)

ទាំងនោះ។ ផលិតផលនៃស៊ីនុសនៃចំហៀង និងកូស៊ីនុសនៃមុំរួមបញ្ចូលគឺស្មើនឹងផលិតផលនៃស៊ីនុសនៃផ្នែកម្ខាងទៀតដែលចងមុំរួមបញ្ចូលដោយកូស៊ីនុសនៃភាគីទីបីដកផលិតផលនៃកូស៊ីនុសនៃជ្រុងម្ខាងដែលចងភ្ជាប់ជាមួយ មុំដោយស៊ីនុសនៃភាគីទីបី និងកូស៊ីនុសនៃមុំទល់មុខភាគីទីមួយ។

រូបមន្ត (1.33) ត្រូវបានគេហៅថារូបមន្តនៃធាតុប្រាំ។ វាអាចត្រូវបានសរសេរដោយការប្រៀបធៀបសម្រាប់ផលិតផលនៃ sin a cos C, sin b cos A, sin b cos C, sin ជាមួយ cos A និង sin ជាមួយ cos B ។

ឥឡូវនេះយើងដោះស្រាយសមភាព (1.32) ទាក់ទងនឹង cos A:

ដោយការបំបែកភាគីទាំងពីរនៃសមភាពចុងក្រោយ ហើយដកពួកវាចេញពី 1 យើងទទួលបាន៖

ការបើកតង្កៀបនិងបែងចែកផ្នែកទាំងពីរនៃកន្សោមនេះដោយអំពើបាប 2 a យើងទទួលបាន

កន្សោមលទ្ធផលគឺស៊ីមេទ្រីយ៉ាងល្អឥតខ្ចោះទាក់ទងនឹង a, b និង c ហើយជំនួស A ជាមួយ B និង b ឬ A ជាមួយ C និង a ជាមួយ c យើងសរសេរ

ទាំងនោះ។ ស៊ីនុសនៃជ្រុងនៃត្រីកោណស្វ៊ែរគឺសមាមាត្រទៅនឹងស៊ីនុសនៃមុំទល់មុខរបស់ពួកគេ; ឬសមាមាត្រនៃស៊ីនុសនៃផ្នែកម្ខាងនៃត្រីកោណស្វ៊ែរទៅនឹងស៊ីនុសនៃមុំផ្ទុយគឺជាថេរ។

ទំនាក់ទំនងដែលបានមកពីទាំងបី (1.32), (1.33), (1.34) រវាងជ្រុង និងមុំនៃត្រីកោណស្វ៊ែរ គឺជាចំណុចសំខាន់។ រូបមន្តផ្សេងទៀតជាច្រើននៃត្រីកោណមាត្រស្វ៊ែរអាចមកពីពួកវា។ យើងបង្ខាំងខ្លួនយើងចំពោះការទាញយករូបមន្តតែមួយសម្រាប់ត្រីកោណស្វ៊ែរមុំខាងស្តាំ។ អនុញ្ញាតឱ្យ A = 90 °; បន្ទាប់មក sin A \u003d 1, cos A \u003d 0 ហើយពីរូបមន្ត (1.33) យើងទទួលបាន

sin a cos B \u003d sin with cos b ។

ការបែងចែកផ្នែកទាំងពីរនៃសមភាពនេះដោយអំពើបាប b និងការជំនួស យោងទៅតាម (1.34) យើងនឹងមានៈ

ctg B = sin c ctg ខ

ទាំងនោះ។ សមាមាត្រនៃតង់សង់នៃជើងម្ខាងនៃត្រីកោណស្វ៊ែរមុំខាងស្តាំទៅនឹងតង់ហ្សង់នៃមុំទល់មុខគឺស្មើនឹងស៊ីនុសនៃជើងម្ខាងទៀត។

ដើម្បីតំណាងឱ្យព័ត៌មានអំពីរូបភាពនៅលើលំហ Gaussian នៅក្នុងកុំព្យូទ័រ វាសមហេតុផលក្នុងការបែងចែកផ្ទៃរបស់វាទៅជាកោសិកា។

ក្នុងករណីនេះ តំបន់នៃផ្នែកនោះនៃផ្ទៃដើមដែលត្រូវបានតម្រង់ទិសខាងក្នុងកោណនៃទិសដៅដែលកំណត់ដោយក្រឡាភាគថាសត្រូវបានភ្ជាប់ជាមួយកោសិកានីមួយៗ។ ការប៉ាន់ស្មានដាច់ពីគ្នានៃរូបភាពស្វ៊ែរដែលលាតសន្ធឹងត្រូវបានគេហៅថាអ៊ីស្តូក្រាមទិស។ តាមឧត្ដមគតិ កោសិកាគួរតែបំពេញតាមតម្រូវការដូចខាងក្រោមៈ

មានតំបន់ដូចគ្នា;

មានរាងដូចគ្នា។

ចន្លោះពេលទៀងទាត់;

មានរាងមូល;

ការបែងចែកគួរតែផ្តល់នូវដំណោះស្រាយមុំល្អគ្រប់គ្រាន់។

ត្រូវតែមានការបង្វិលដែលយកភាគថាសទៅក្នុងខ្លួនវា។

កោសិកាដែលពន្លូតត្រូវតែត្រូវបានដកចេញ ព្រោះវានឹងត្រូវគ្នានឹងព័ត៌មានអំពីផ្ទៃផ្ទៃ ការតំរង់ទិសដែលផ្លាស់ប្តូរច្រើនជាងក្នុងករណីកោសិការាងមូលច្រើននៃតំបន់ដូចគ្នា។ ក្នុងពេលជាមួយគ្នានេះ ប្រសិនបើកោសិកាត្រូវបានរៀបចំជាទៀងទាត់ នោះទីតាំងរបស់ពួកគេទាក់ទងនឹងអ្នកជិតខាងរបស់ពួកគេនឹងដូចគ្នាសម្រាប់កោសិកាទាំងអស់ ហើយការកំណត់បែបនេះគឺពិតជាគួរឱ្យចង់បានណាស់។ ជាអកុសល វាមិនអាចបំពេញតាមតម្រូវការទាំងអស់នេះក្នុងពេលតែមួយបានទេ។

ភាគថាសដែលអាចមានមួយត្រូវបានបង្កើតឡើងដោយខ្សែក្រវាត់ latitudinal ដែលនីមួយៗត្រូវបានបែងចែកដោយឆ្នូត meridional (រូបភាព 16.13) ។ កោសិកាលទ្ធផលអាចត្រូវបានបង្កើតស្ទើរតែស្មើៗគ្នានៅក្នុងតំបន់ ប្រសិនបើចំនួននៃក្រុមតន្រ្តីបែបនេះនៅរយៈទទឹងខ្ពស់ត្រូវបានកាត់បន្ថយ។ គុណសម្បត្តិមួយនៃគ្រោងការណ៍បែបនេះគឺភាពសាមញ្ញនៃការស្វែងរកក្រឡាដែលវាចាំបាច់ដើម្បីផ្តល់ភាពធម្មតាជាក់លាក់មួយទៅផ្ទៃ។ ទោះជាយ៉ាងណាក៏ដោយ វិធីសាស្រ្តបែបនេះគឺនៅឆ្ងាយពីការបំពេញតម្រូវការដែលបានរាយខាងលើ។ ឧទាហរណ៍មិនមានការបង្វិលដោយមានជំនួយពីដែលភាគថាសដែលបានសាងសង់នៃស្វ៊ែរត្រូវបានបកប្រែទៅជាខ្លួនវា (លើកលែងតែការបង្វិលអំពីអ័ក្សតភ្ជាប់បង្គោល) ។

ភាគថាសដែលសមស្របជាងនេះ អាចទទួលបានដោយការបញ្ចាំងទៅលើឯកតាស្វ៊ែរ ពហុហេដដ្រាធម្មតា ដែលចំណុចកណ្តាលរបស់វាស្របគ្នានឹងចំណុចកណ្តាលនៃស្វ៊ែរ។ មុខនៃពហុកោណធម្មតាគឺជាពហុកោណធម្មតា (ហើយវាដូចគ្នាទាំងអស់) ។ ដូច្នេះភាគថាសដែលទទួលបានដោយការព្យាករនៃ polyhedron ធម្មតាមានទ្រព្យសម្បត្តិដែលកោសិកាទាំងអស់មានរូបរាងនិងតំបន់ដូចគ្នា។ លើសពីនេះទៀតការរៀបចំធរណីមាត្រនៃកោសិកាទាំងអស់ដោយគោរពអ្នកជិតខាងគឺដូចគ្នា។ ជាអកុសល,

អង្ករ។ ១៦.១៣. ការបែងចែកនៃស្វ៊ែរទៅជាធាតុដោយ meridians និងប៉ារ៉ាឡែល។ ជាអកុសល ភាគថាសបែបនេះមានលក្ខណៈសម្បត្តិមួយចំនួនប៉ុណ្ណោះដែលត្រូវការដើម្បីរក្សាទុកអ៊ីស្តូក្រាមតម្រង់ទិស។

អង្ករ។ ១៦.១៤. (សូមមើលការស្កែន) ការព្យាករ dodecahedron និង icosahedron ទៅលើស្វ៊ែរតែមួយ ដើម្បីទទួលបានភាគថាសចូលទៅក្នុង និងកោសិកា។

មានតែរូបកាយធម្មតាចំនួនប្រាំប៉ុណ្ណោះដែលត្រូវបានគេស្គាល់ថា ពីមួយណាត្រូវជ្រើសរើស (tetrahedron, hexahedron, octahedron, dodecahedron និង icosahedron)។ សម្រាប់ dodecahedron កោសិកាមានរាងមូល (រូបភាព 16.14, ក) ។ ទោះយ៉ាងណាក៏ដោយ Dodecahedron មានមុខតែដប់ពីរប៉ុណ្ណោះ។ សូម្បីតែ icosahedron ផ្តល់នូវតំណាងដ៏ឃោរឃៅនៃការតំរង់ទិស (រូបភាព 16.14b) ។ លើសពីនេះទៀតកោសិកាចំនួនម្ភៃរបស់វាមិនមានរាងមូលទេ។

យើង​អាច​បន្ត​ទៅ​មុខ​ទៀត​ហើយ​ពិចារណា​អំពី​ពហុធា​ពាក់កណ្តាល​ធម្មតា។ មុខរបស់ពួកគេក៏ជាពហុកោណធម្មតាដែរ ប៉ុន្តែមិនចាំបាច់ដូចគ្នាទេ។ តំបន់នៃមុខទាំងអស់មិនស្មើគ្នា។ ក្នុងករណីខ្លះ វាអាចសាងសង់ពហុកោណថ្មីដែលមានទំនាក់ទំនងដូចគ្នារវាងមុខដូចពហុកោណ semiregular ដើម ប៉ុន្តែផ្ទៃមុខរបស់វាស្មើគ្នា។ ឯណា

អង្ករ។ ១៦.១៥. a - icosahedron កាត់ខ្លី ដែលជាពហុកោណពាក់កណ្តាលធម្មតាដែលមាន 32 មុខ; ខ - penta ទៅ decahedron ដែលមានមុខត្រីកោណចំនួន 60 ។ ភាគថាសតូចៗនៃផ្ទៃនៃផ្នែកឯកតាអាចត្រូវបានផ្អែកលើ polyhedra semiregular បែបនេះ។

អង្ករ។ ១៦.១៦. សមត្ថភាពក្នុងការបង្កើតបណ្តាញ geodetic ដោយផ្អែកលើការព្យាករណាមួយនៃ polyhedra ធម្មតាឬពាក់កណ្តាលទៀងទាត់។

មុខនីមួយៗត្រូវបានបែងចែកទៅជាកោសិការាងត្រីកោណ។ បណ្តាញដែលបង្ហាញនៅទីនេះគឺផ្អែកលើ icosahedron និងមាន 12 បញ្ឈរ ដែលនៅជាប់នឹង 5 កោសិកា។ ក្រឡាចំនួនប្រាំមួយបញ្ចូលគ្នានៅផ្នែកខាងលើដែលនៅសល់។

ទម្រង់​មុខ​ខ្លះ​មិន​ត្រឹមត្រូវ​ទៀត​ទេ។ ឧទាហរណ៍នៃភាគថាសដែលមានមូលដ្ឋានលើពហុកោណពាក់កណ្តាលទៀងទាត់ផ្តល់ឱ្យបាល់បាល់ទាត់មួយ (រូបភាព 16.15, ក) ។ រូបចម្លាក់ icosahedron ដែលត្រូវបានកាត់ឱ្យខ្លី ពោលគឺ តួដែលមាន 12 pentagonal និង 20 hexagonal faces ត្រូវបានគេយកជារូបរាងដំបូង។ ជាអកុសល មានប៉ូលីហេដដ្រាពាក់កណ្តាលធម្មតាចំនួន ១៣ ប៉ុណ្ណោះ (ប៉ូលីហេដដ្រាធម្មតាចំនួន ៥ ដែលត្រូវបានកាត់ចេញ, គូបកតាហាដុន, អាយកូស៊ីដាដេកាហេដរ៉ុន, គូបស្នូប, ស្នូបអាយកូស៊ីដាដកាហេដរ៉ុន, គូបកតាហ៊ីដ្រូនដែលត្រូវបានកាត់ខ្លី, រាងពងក្រពើ) ។ ពួកវាមិននាំឱ្យភាគថាសតូចល្មមសម្រាប់គោលបំណងរបស់យើងទេ។

ប្រសិនបើយើងនៅតែចង់ទទួលបានភាគល្អិតល្អជាងនោះ យើងអាចព្យាយាមបំបែកធាតុដែលមានស្រាប់ទៅជាធាតុត្រីកោណ។ ឧទាហរណ៍ ប្រសិនបើយើងបំបែកមុខ pentagonal នីមួយៗនៃ dodecahedron ទៅជាត្រីកោណស្មើគ្នាចំនួនប្រាំ យើងទទួលបាន pentadodecahedron ដែលមានមុខ 60 (រូបភាព 16.15, ខ)។ Ohm គឺ​ទ្វេ​ទៅ​នឹង icosahedron ដែល​បាន​កាត់​ឱ្យ​ខ្លី។

ដំណើរការក្នុងទិសដៅដូចគ្នា ត្រីកោណលទ្ធផលនីមួយៗអាចត្រូវបានបែងចែកទៅជាត្រីកោណតូចៗចំនួនបួន ដោយអនុលោមតាមរចនាសម្ព័ន្ធ domed ដែលត្រូវបានគេស្គាល់យ៉ាងច្បាស់នៅក្នុង geodesy (រូបភាព 16.16) ។ ដោយការបន្ធូរបន្ថយតម្រូវការខាងលើមួយចំនួន គុណភាពបង្ហាញខ្ពស់អាចសម្រេចបាន។ តាមការពិត វាជាការប្រសើរក្នុងការប្រើប្រាស់សំណង់ពីរ ចាប់តាំងពីមុខរបស់ពួកគេមានច្រើនលើសលប់ (មិនទៀងទាត់) ឆកោនដែលមាន pentagons ចំនួន 12 រាយប៉ាយរវាងពួកគេ (រូបភាព 16.15, ខ) ។ ភាគថាសតូចៗតាមអំពើចិត្តអាចត្រូវបានផ្តល់ជូនតាមរបៀបនេះ។

ដើម្បីប្រើវិធីសាស្រ្តនេះវាចាំបាច់ដើម្បីឱ្យមានប្រសិទ្ធភាពកំណត់ធាតុដែលត្រូវគ្នាទៅនឹងធម្មតាដែលបានផ្តល់ឱ្យលើផ្ទៃ។ នៅក្នុងករណីនៃភាគថាសដែលទទួលបាននៅលើមូលដ្ឋាននៃ polyhedra ធម្មតា វាងាយស្រួលក្នុងការគណនាកូស៊ីនុសនៃមុំរវាងវ៉ិចទ័រឯកតាដែលបានផ្តល់ឱ្យ និងវ៉ិចទ័រដែលត្រូវគ្នានឹងមជ្ឈមណ្ឌលកោសិកា។ (ចុងក្រោយត្រូវគ្នាទៅនឹងចំនុចកំពូលនៃទ្វេ

polyhedron ធម្មតា។) បន្ទាប់មក វ៉ិចទ័រដែលបានផ្តល់ឱ្យគឺត្រូវបានផ្តល់ទៅក្រឡាដែលកណ្តាលនៅជិតបំផុត។ នៅក្នុងករណីនៃភាគថាសដែលស្រដៀងទៅនឹងបណ្តាញ geodetic វាគឺអាចធ្វើទៅបានដើម្បីធ្វើសកម្មភាពតាមឋានានុក្រម។ ភាគថាសបែបនេះគឺផ្អែកលើ polyhedron ធម្មតា។ ក្រឡាដែលមានមជ្ឈមណ្ឌលជិតបំផុតត្រូវបានរកឃើញដូចដែលបានពិពណ៌នាខាងលើ។ បន្ទាប់ពីនោះ យើងកំណត់ថាតើត្រីកោណមួយណាដែលបែងចែកវា ឯកតាវ៉ិចទ័រធម្មតាធ្លាក់ចូល។ ដំណើរការ​នេះ​បន្ត​សម្រាប់​ត្រីកោណ​បួន​បន្ទាប់​ដែល​បែងចែក​ផ្នែក​រង​ដែល​បាន​រក​ឃើញ ហើយ​ដូច្នេះ​នៅ​លើ​។ ក្នុង​ការអនុវត្ត​វិធី​ស្វែងរក​តារាង​អាច​ត្រូវ​បាន​ប្រើ​ដែល​ទោះបីជា​មិន​ត្រឹមត្រូវ​ក៏ដោយ​គឺ​លឿន​ណាស់។

សូមឱ្យមុំរឹងដែលបំពេញដោយក្រឡាមួយនៅលើស្វ៊ែរ (ក្នុងករណី icosahedron) ។ ចំនួន​ធម្មតា​ដែល​រំពឹងទុក​ដែល​ធ្លាក់​ក្នុង​ក្រឡា​បែបនេះ​សម្រាប់​វត្ថុ​ប៉ោង​គឺ

វាច្បាស់ណាស់ថាអ៊ីស្តូក្រាមតំរង់ទិស ពោលគឺការប៉ាន់ប្រមាណដាច់ពីគ្នានៃរូបភាពស្វ៊ែរដែលបានពង្រីក អាចត្រូវបានគណនាក្នុងមូលដ្ឋាន។ យើងគ្រាន់តែរាប់ចំនួនធម្មតាដែលជារបស់កោសិកានីមួយៗ។ ក្នុងពេលជាមួយគ្នានេះកោង Gaussian ត្រូវបានបញ្ជាក់នៅក្នុងលក្ខខណ្ឌនៃដេរីវេផ្នែកទីមួយនិងទីពីរនៃមុខងារកំណត់ផ្ទៃ។ នៅក្នុងការអនុវត្ត ការប៉ាន់ប្រមាណនៃនិស្សន្ទវត្ថុទាំងនេះប្រែទៅជាមិនអាចជឿទុកចិត្តបានដោយសារតែវត្តមាននៃសម្លេងរំខាន។ ដូច្នេះការពិតដែលថារូបភាពស្វ៊ែរដែលពង្រីកអាចត្រូវបានគណនាដោយមិនចាំបាច់គណនាដេរីវេគឺមានសារៈសំខាន់ខ្លាំងណាស់។

សាច់រឿងនៃការបង្ហាញនេះគឺមានដូចតទៅ៖ នៅពេលដែលមិត្តរបស់ខ្ញុំម្នាក់បានបង្កើតម៉ាស៊ីនបង្កើតផែនទីភពសម្រាប់ហ្គេមរបស់គាត់ ហើយចង់ឱ្យផែនទីដែលបានបង្កើតតាមរបៀបនេះត្រូវបានបង្ហាញជាស្វ៊ែរវិល។ ទោះយ៉ាងណាក៏ដោយ ក្នុងពេលជាមួយគ្នានេះ គាត់មិនចង់ប្រើក្រាហ្វិក 3D ទេ ប៉ុន្តែផ្ទុយទៅវិញ គាត់បានបង្កើតស៊ុមជាច្រើនជាមួយនឹងរង្វង់ដូចគ្នានេះបានបង្វិលនៅមុំខុសៗគ្នា។ បរិមាណនៃអង្គចងចាំដែលបានប្រើគឺ ... តើយើងអាចនិយាយបានថាលើស ប៉ុន្តែល្បឿននៃការបង្កើតស៊ុម (ក៏ដូចជាគុណភាពនៃការប្រតិបត្តិរបស់ពួកគេ) បានរងទុក្ខយ៉ាងខ្លាំង។ បន្ទាប់ពីបានគិតបន្តិច ខ្ញុំបានជួយគាត់ក្នុងការបង្កើនប្រសិទ្ធភាពដំណើរការនេះ ប៉ុន្តែជាទូទៅខ្ញុំមានអារម្មណ៍ត្រឹមត្រូវថានេះគឺជាកិច្ចការសម្រាប់ OpenGL ហើយមិនមែនសម្រាប់ក្រាហ្វិក 2D ទាល់តែសោះ។

ដូច្នេះហើយ នៅថ្ងៃមួយ នៅពេលដែលខ្ញុំរងទុក្ខដោយការគេងមិនលក់ ខ្ញុំបានសម្រេចចិត្តព្យាយាមបញ្ចូលគ្នានូវវិធីសាស្រ្តទាំងពីរនេះ៖ គូររង្វង់បង្វិល (ជាមួយនឹងផែនទីនៃភពផែនដីលាតសន្ធឹងលើវា) តាមរយៈ OpenGL ប៉ុន្តែក្នុងពេលតែមួយទុកវាចោល។

ហើយខ្ញុំត្រូវតែនិយាយថាខ្ញុំជោគជ័យ។ ប៉ុន្តែរឿងដំបូង។

ដំណើរការគណិតវិទ្យា

ដើម្បីចាប់ផ្តើមជាមួយ ចូរយើងកំណត់ភារកិច្ចជាក់ស្តែង។ សម្រាប់ចំណុចនីមួយៗនៅលើអេក្រង់ យើងមានកូអរដោនេអេក្រង់ពីរនៅក្នុងប្រព័ន្ធកូអរដោណេ Cartesian ហើយយើងត្រូវស្វែងរកកូអរដោនេស្វ៊ែរសម្រាប់វា (តាមពិត រយៈទទឹង និងរយៈបណ្តោយ) ដែលតាមពិតគឺជាកូអរដោនេវាយនភាពសម្រាប់ផែនទីភពផែនដី។

ដូច្នេះ។ ការផ្លាស់ប្តូរពីប្រព័ន្ធកូអរដោណេស្វ៊ែរទៅជា Cartesian មួយត្រូវបានផ្តល់ដោយប្រព័ន្ធសមីការ (ដកស្រង់ចេញពីវិគីភីឌា)៖

និងការផ្លាស់ប្តូរបញ្ច្រាស - ជាមួយនឹងសមីការបែបនេះ:

សំរបសំរួល Zយើងអាចចេញបានយ៉ាងងាយស្រួល Xនិង ដោយដឹងពីកាំ ហើយយើងអាចយកកាំខ្លួនឯងស្មើនឹងមួយ។
នៅពេលអនាគត យើងនឹងយល់ព្រមថា យើងនឹងផ្លាស់ប្តូរសមីការខាងលើបន្តិច ដោយផ្លាស់ប្តូរគោលគំនិត (សម្រាប់ពួកយើង វានឹងក្លាយជាអេក្រង់បញ្ឈរ) និង Z(នេះនឹងជាជម្រៅនៃកន្លែងកើតហេតុ) ។

ផ្នែកបច្ចេកទេស

ការអនុវត្តគំនិតនេះនឹងតម្រូវឱ្យយើងប្រើ quad (ខ្ញុំនិយាយរួចហើយអំពីរបៀបប្រើវា ដូច្នេះខ្ញុំនឹងមិនធ្វើវាឡើងវិញទេ ជាពិសេសដោយសារខាងក្រោមគឺជាតំណភ្ជាប់ទៅកាន់កូដប្រភពពេញលេញនៃគម្រោង) ក៏ដូចជាពីរ វាយនភាព៖ ផែនទីពិតនៃភពផែនដី (ខ្ញុំបានប្រើវាយនភាពផែនដី 2048x1024) និងផែនទីសំរបសំរួលវាយនភាព។ កូដ​សម្រាប់​បង្កើត​វាយនភាព​ទីពីរ​ធ្វើ​ឡើង​វិញ​នូវ​គណិតវិទ្យា​នៃ​ការ​បំប្លែង​ពី Cartesian ទៅ​កូអរដោនេ​ស្វ៊ែរ៖

int texSize = 1024; ទ្វេដង r = texSize * 0.5; int pixels = ថ្មី int; សម្រាប់ (ជួរ int = 0, idx = 0; ជួរដេក< texSize; row++) { double y = (r - row) / r; double sin_theta = Math.sqrt(1 - y*y); double theta = Math.acos(y); long v = Math.round(255 * theta / Math.PI); for (int col = 0; col < texSize; col++) { double x = (r - col) / r; long u = 0, a = 0; if (x >= -sin_theta && x<= sin_theta) { double z = Math.sqrt(1 - y*y - x*x); double phi = Math.atan2(z, x); u = Math.round(255 * phi / (2 * Math.PI)); a = Math.round(255 * z); } pixels = (int) ((a << 24) + (v << 8) + u); } } GLES20.glGenTextures(1, genbuf, 0); offsetTex = genbuf; if (offsetTex != 0) { GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, offsetTex); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_NONE); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_NONE); GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, texSize, texSize, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, IntBuffer.wrap(pixels)); }
ចំណាំថាកូអរដោនេ Xនិង ត្រូវបានផ្ទេរពីជួរទៅជួរ [-1..1] ហើយសំរបសំរួលវាយនភាព យូនិង ត្រូវបានបំប្លែងពីរ៉ាដ្យង់ទៅជួរ បន្ទាប់ពីនោះពួកវាត្រូវបានសរសេរទៅជាសមាសធាតុពណ៌ក្រហម និងបៃតងនៃវាយនភាព 32 ប៊ីតរៀងគ្នា។ ឆានែលអាល់ហ្វាត្រូវបានប្រើដើម្បីរក្សាទុក "ជម្រៅ" (កូអរដោនេ Z) ខណៈពេលដែលពណ៌ខៀវនៅតែមិនប្រើសម្រាប់ពេលនេះ។ ការបិទការច្រោះ bilinear ក៏មិនមែនជារឿងចៃដន្យដែរ៖ នៅដំណាក់កាលនេះ វាមិនផ្តល់ឥទ្ធិពលណាមួយទេ (ចំណុចជិតខាងក្នុងករណីណាក៏ដោយមានតម្លៃដូចគ្នា ដោយមានការលោតខ្លាំង) ហើយនៅក្នុងអ្វីដែលខ្ញុំនឹងបង្ហាញបន្ទាប់ វានឹងមានគ្រោះថ្នាក់។ ប៉ុន្តែបន្ថែមទៀតអំពីវាខាងក្រោម។

វាយនភាពទាំងពីរត្រូវបានផ្តល់អាហារដល់ការបញ្ចូលនៃកម្មវិធីស្រមោលភីកសែលសាមញ្ញ (តទៅនេះ រូបភាពអាចចុចបាន)៖

ខ្សែអក្សរចុងក្រោយឯកជន quadFS = "ភាពជាក់លាក់មធ្យមអណ្តែត;\n" + "ឯកសណ្ឋានគំរូគំរូ2D uTexture0;\n" + "ឯកសណ្ឋានគំរូគំរូ2D uTexture1;\n" + "ប្រែប្រួល vec4 TexCoord0;\n" + "void main() (\n" + " vec4 vTex = texture2D(uTexture0, TexCoord0.xy);\n" + " vec3 vCol = texture2D(uTexture1, vTex.xy).rgb;\n" + " gl_FragColor = vec4(vCol, (vTex.w >
ខ្ញុំ​មិន​ផ្តល់​កូដ​បង្ហាញ​ឈុត​ទេ ព្រោះ អ្វីគ្រប់យ៉ាងគឺតូចតាចនៅក្នុងវា (ហើយម្តងទៀតអ្នកអាចមើលឃើញវានៅក្នុងប្រភពពេញលេញ) ហើយ Shader ខ្លួនវាគឺមានលក្ខណៈដើមណាស់។ អ្វី​ដែល​គួរ​ឱ្យ​ចង់​ដឹង​បំផុត​អំពី​វា​គឺ​ថា​ឆានែល​អាល់ហ្វា​ត្រូវ​បាន​ពិនិត្យ​មើល​តែ​ភាព​វិជ្ជមាន​រហូត​មក​ដល់​ពេល​នេះ ខណៈ​ដែល​វា​អាច​ត្រូវ​បាន​ប្រើ​សម្រាប់​ឥទ្ធិពល​នៃ​ពន្លឺ។

វាបានប្រែក្លាយយ៉ាងល្អ ប៉ុន្តែមានលក្ខណៈរាបស្មើ បូកខ្ញុំចង់បន្ថែមការបង្វិលពិតប្រាកដនៃភពជុំវិញអ័ក្សរបស់វា។

យើងរួមបញ្ចូលប៉ារ៉ាម៉ែត្រមួយបន្ថែមទៀតនៅក្នុងកម្មវិធីស្រមោល (យើងនឹងផ្លាស់ប្តូរវាអាស្រ័យលើពេលវេលានៅក្នុងជួរ) បូកបន្ថែម "ជម្រៅ" (គុណនឹងពណ៌ដោយតម្លៃពីឆានែលអាល់ហ្វា)៖

ខ្សែអក្សរចុងក្រោយឯកជន quadFS = "ភាពជាក់លាក់មធ្យមអណ្តែតទឹក;\n" + "ឯកសណ្ឋានគំរូគំរូ2D uTexture0;\n" + "ឯកសណ្ឋានគំរូគំរូ2D uTexture1;\n" + "ឯកសណ្ឋានអណ្តែត uOffset;\n" + "ការផ្លាស់ប្តូរ vec4 TexCoord0;\n" + "void main() (\n" + " vec4 vTex = texture2D(uTexture0, TexCoord0.xy);\n" + " vTex.x += uOffset;\n" + " vec3 vCol = texture2D(uTexture1, vTex.xy .rgb;\n" + " gl_FragColor = vec4(vCol * vTex.w, (vTex.w > 0.0 ? 1.0: 0.0));\n" + ")\n";
ជាការប្រសើរណាស់, មិនមានការត្អូញត្អែរអំពីស្វ៊ែរខ្លួនឯងនោះទេប៉ុន្តែរូបភាពមើលទៅដូចម្ដេច ... ប្រាំបីប៊ីតឬអ្វីមួយ។ ហើយគ្មានអ្វីប្លែកទេ៖ យើងបានកត់ត្រាសំរបសំរួលវាយនភាពក្នុងជួរមួយ (អតិបរិមាដែលមានសម្រាប់យើងនៅក្នុងសមាសធាតុពណ៌ធម្មតា) ដែលមានន័យថាវាយនភាពរបស់យើងអាចមានកម្ពស់មិនលើសពី 256 ពិន្ទុ (និងទទឹង 512 គិតដល់ការបង្វិល)។ មិនគ្រប់គ្រាន់ទេ អ្នកត្រូវការភាពជាក់លាក់ 10 ប៊ីត។

ការបង្កើនដំណោះស្រាយ

ខ្ញុំ​ព្រមាន​អ្នក​ភ្លាមៗ៖ កូដ​ដែល​បាន​ពិពណ៌នា​នៅ​ទីនេះ​អាច​ដំណើរការ​ខុស​លើ​ឧបករណ៍​ណា​មួយ​ ទោះ​បី​ជា​ខ្ញុំ​អាច​សម្រេច​បាន​នូវ​ការ​បង្ហាញ​ធម្មតា​លើ​ឧបករណ៍​ទាំងអស់​ដែល​ខ្ញុំ​អាច​កាន់​ក្នុង​ដៃ​បាន​ក៏​ដោយ។ ក្នុងករណីណាក៏ដោយ អ្វីដែលត្រូវបានពិពណ៌នានៅទីនេះគឺជាការ hack ធម្មតា។

ដូច្នេះ រហូតមកដល់ពេលនេះ យើងបានប្រើសមាសធាតុពណ៌ពីរក្នុងចំណោមបីពណ៌ ពោលគឺឧ។ 16 ប៊ីត ក្នុងចំណោម 24 ប៊ីត។ ចូរយើងខ្ចប់ទិន្នន័យ ដើម្បីឱ្យកូអរដោនេវាយនភាពនីមួយៗមានទំហំ 12 ប៊ីត ដែលនឹងអនុញ្ញាតឱ្យយើងធ្វើការជាមួយវាយនភាពរហូតដល់ 4096 ភីកសែលក្នុងកម្ពស់! ដើម្បីធ្វើដូចនេះយើងនឹងផ្លាស់ប្តូរព្យញ្ជនៈបីបន្ទាត់នៅក្នុងកម្មវិធី:

ឡុង v = Math.round(4095 * theta / Math.PI); ...u = Math.round(4095 * phi / (2 * Math.PI)); ... ភីកសែល = (int) ((ក<< 24) + (v << 12) + ((u & 15) << 8) + (u >> 4)); ...
ហើយសរសេរ Shader ថ្មីមួយដែលគិតគូរពីគ្រោងការណ៍អាសយដ្ឋាន 12 ប៊ីត (នេះគឺជាកន្លែងដែលតម្រង bilinear ត្រូវតែត្រូវបានបិទ!)៖

ខ្សែអក្សរចុងក្រោយឯកជន quadFS = "ភាពជាក់លាក់មធ្យមអណ្តែតទឹក;\n" + "ឯកសណ្ឋានគំរូគំរូ2D uTexture0;\n" + "ឯកសណ្ឋានគំរូគំរូ2D uTexture1;\n" + "អណ្តែតឯកសណ្ឋាន uOffset;\n" + "ការផ្លាស់ប្តូរ vec4 TexCoord0;\n" + "void main() (\n" + " vec4 vTex = texture2D(uTexture0, TexCoord0.xy);\n" + " vec3 vOff = vTex.xyz * 255.0 + vec3(0.5, 0.5, 0.5);\n" + " float hiY = floor(vOff.y / 16.0);\n" + " float loY = vOff.y - 16.0 * hiY;\n" + " vec2 vCoord = vec2(\n" + " (vOff.x * 16.0 + loY) / 4095.0 + uOffset,\n" + " (vOff.z * 16.0 + hiY) / 4095.0);\n" + " vec3 vCol = texture2D(uTexture1, vCoord).rgb;\n" + " gl_FragColor = vec4(vCol * vTex.w, (vTex.w > 0.0 ? 1.0: 0.0));\n" + ")\n";
មែនហើយ នេះគឺជាបញ្ហាខុសគ្នាទាំងស្រុង! ជាមួយនឹងការកែប្រែបន្តិចបន្តួច (បន្ថែមការពង្រីក pinch និងការបង្វិលម្រាមដៃ) ខ្ញុំបានបង្ហាញកម្មវិធីនេះដល់មិត្តភ័ក្តិ និងសហការីរបស់ខ្ញុំ ហើយនៅពេលជាមួយគ្នានោះបានសួរថាតើមានត្រីកោណប៉ុន្មានដែលពួកគេគិតថាស្ថិតនៅក្នុងឈុតនេះ។ លទ្ធផលខុសគ្នា ហើយសំណួរខ្លួនឯងបានធ្វើឱ្យមានការសង្ស័យអំពីវត្តមាននៃការចាប់មួយ (ក្នុងករណីនេះអ្នកឆ្លើយសំណួរបានលេងសើចថា "មួយ" ដែលមិនឆ្ងាយពីការពិត) ប៉ុន្តែចម្លើយត្រឹមត្រូវគឺគួរឱ្យភ្ញាក់ផ្អើលជាប់លាប់។ ហើយគ្រប់គ្នាដូចជាមនុស្សម្នាក់បានសួរថាៈ ហេតុអ្វីបានជារង្វង់អាចបង្វិលជុំវិញអ័ក្សមួយបាន ប៉ុន្តែមិនផ្អៀង? .. ហឺម។

ទំនោរ

ប៉ុន្តែការពិតគឺថាជម្រាលនៅក្នុងគ្រោងការណ៍នេះគឺពិបាកជាងក្នុងការអនុវត្ត។ តាមការពិត កិច្ចការគឺមិនអាចដោះស្រាយបានទេ ហើយខ្ញុំថែមទាំងបានស៊ូទ្រាំនឹងវា ប៉ុន្តែមិនមែនដោយគ្មាន nuances ទេ។

សរុបមក កិច្ចការត្រូវចុះទៅទទួលយកកូអរដោនេដែលបានផ្លាស់ប្តូរ ខណៈពេលដែលកូអរដោនេ យូមិនផ្លាស់ប្តូរ៖ នេះគឺដោយសារតែយើងបន្ថែមការបង្វិលជុំវិញអ័ក្ស X. ផែនការមានដូចខាងក្រោម៖ យើងបំប្លែងកូអរដោនេវាយនភាពទៅជាកូអរដោណេអេក្រង់ (ក្នុងជួរ [-1..1]) អនុវត្តម៉ាទ្រីសបង្វិលជុំវិញអ័ក្សផ្តេកទៅពួកវា (ដើម្បីធ្វើដូច្នេះ យើងសរសេរជាថេរថ្មីជាមុន uTiltស៊ីនុស និងកូស៊ីនុសនៃមុំទំនោរ) ហើយបន្ទាប់មកយើងប្រើកូអរដោនេថ្មី។ ដើម្បីយកគំរូតាមទម្រង់គំរូរបស់យើង។ កូអរដោនេ "បង្វិល" Zវាក៏នឹងមានប្រយោជន៍សម្រាប់យើងផងដែរ ដោយមានជំនួយរបស់វា យើងនឹងឆ្លុះបញ្ចាំងពីបណ្តោយសម្រាប់ផ្នែកខាងក្រោយនៃបាល់)។ សំរបសំរួលអេក្រង់ Zអ្នកនឹងត្រូវគណនាយ៉ាងច្បាស់លាស់ ដើម្បីកុំឱ្យធ្វើការជ្រើសរើសវាយនភាពពីរពីវាយនភាពមួយ ក្នុងពេលតែមួយ វានឹងបង្កើនភាពត្រឹមត្រូវរបស់វា។

ខ្សែអក្សរចុងក្រោយឯកជន quadFS = "ភាពជាក់លាក់មធ្យមអណ្តែត;\n" + "ឯកសណ្ឋានគំរូគំរូ2D uTexture0;\n" + "ឯកសណ្ឋានគំរូគំរូ2D uTexture1;\n" + "ឯកសណ្ឋានអណ្តែត uOffset;\n" + "ឯកសណ្ឋាន vec2 uTilt;\n" + "varying vec4 TexCoord0;\n" + "void main() (\n" + " float sx = 2.0 * TexCoord0.x - 1.0;\n" + " float sy = 2.0 * TexCoord0.y - 1.0;\n" + " float z2 = 1.0 - sx * sx - sy * sy;\n" + " ប្រសិនបើ (z2 > 0.0) (;\n" + " float sz = sqrt(z2);\n" + " float y = ( sy * uTilt.y - sz * uTilt.x + 1.0) * 0.5;\n" + " float z = (sy * uTilt.x + sz * uTilt.y);\n" + " vec4 vTex = texture2D(uTexture0 , vec2(TexCoord0.x, y));\n" + " vec3 vOff = vTex.xyz * 255.0 + vec3(0.5, 0.5, 0.5);\n" + " អណ្តែត hiY = ជាន់(vOff.y / 16.0) ;\n" + " float loY = vOff.y - 16.0 * hiY;\n" + " vec2 vCoord = vec2(\n" + " (vOff.x * 16.0 + loY) / 4095.0,\n" + " ( vOff.z * 16.0 + hiY) / 4095.0);\n" + " ប្រសិនបើ (z< 0.0) { vCoord.x = 1.0 - vCoord.x; }\n" + " vCoord.x += uOffset;\n" + " vec3 vCol = texture2D(uTexture1, vCoord).rgb;\n" + " gl_FragColor = vec4(vCol * sz, 1.0);\n" + " } else {\n" + " gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n" + " }\n" + "}\n";
ហូរ៉ា ជម្រាលបានដំណើរការ! នោះគ្រាន់តែជាសំលេងចម្លែកនៅព្រំដែននៃអឌ្ឍគោលដែលគួរឱ្យអាម៉ាស់បន្តិច។ ជាក់ស្តែង បញ្ហាស្ថិតនៅលើភាពត្រឹមត្រូវនៃការដោះស្រាយមិនគ្រប់គ្រាន់នៅចំណុចព្រំដែន (ចំណុចនៅលើរង្វង់ខ្លួនវាត្រូវគ្នាទៅនឹងជួរធំពេកនៃកូអរដោណេ texel មួយលាតសន្ធឹងលើចន្លោះពេលនៃប្រវែងគួរឱ្យកត់សម្គាល់)។ នៅទីបញ្ចប់ ខ្ញុំបានគ្រប់គ្រងវាដោយប្រើវាយនភាពដែលបានបង្កើតពីរជំនួសឱ្យមួយ។

ជាលទ្ធផល អ្នកអាចពង្រីក និងបង្វិលបាល់បានច្រើនតាមរបៀបដូចគ្នាទៅនឹង Google Earth ដែរ។ ជាមួយនឹងភាពខុសគ្នាថាមានតែត្រីកោណពីរប៉ុណ្ណោះ។

ហើយទីបំផុតការសន្យា។ កូដប្រភពសម្រាប់គម្រោងមាននៅ