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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ рисования Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² Π½Π° языкС Π‘++, с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ VCL

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

Под графичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Graphical User Interface — GUI) подразумСваСтся Ρ‚ΠΈΠΏ экранного прСдставлСния, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ списки Ρ„Π°ΠΉΠ»ΠΎΠ², указывая Π½Π° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ Π² ΡΠΏΠΈΡΠΊΠ°Ρ… мСню, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π½Π° ΡΠΊΡ€Π°Π½Π΅. ДСйствия ΠΌΠΎΠ³ΡƒΡ‚, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ, Π»ΠΈΠ±ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ клавиш Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ рисования Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² Π½Π° языкС Π‘++, с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ VCL (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ ΠžΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ РСспублики Π‘Π΅Π»Π°Ρ€ΡƒΡΡŒ УО «Π’итСбский ГосударствСнный ВСхнологичСский УнивСрситСт»

ΠŸΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ записка ΠΊ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π½Π° Ρ‚Π΅ΠΌΡƒ «Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ рисования Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++, с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ VCL»

ВитСбск — 2009

  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

    .

    • Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° интСрфСйса прилоТСния
    • Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния, Π΅Π³ΠΎ рСализация Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++
    • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    • Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

Π’ Π·Π°ΠΏΠΈΡΠΊΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ описаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ Π² ΡΠΎΠΎΡ‚вСтствии с Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ «Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ рисования Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++, с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ VCL». ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для рисования Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ².

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π² ΡΡ€Π΅Π΄Π΅ C++ Builder 6, Ρ‚. ΠΊ Π΄Π°Π½Π½Π°Ρ срСда ΡƒΠ΄ΠΎΠ±Π½Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, интСрфСйсы, создаваСмыС C++ Builder 6 наглядны ΠΈ ΠΏΡ€ΠΎΡΡ‚Ρ‹ для использования.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ выполняСт всС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅, Π² ΡΠΎΠΎΡ‚вСтствии с Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° интСрфСйса прилоТСния

Под графичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Graphical User Interface — GUI) подразумСваСтся Ρ‚ΠΈΠΏ экранного прСдставлСния, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ списки Ρ„Π°ΠΉΠ»ΠΎΠ², указывая Π½Π° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ Π² ΡΠΏΠΈΡΠΊΠ°Ρ… мСню, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π½Π° ΡΠΊΡ€Π°Π½Π΅. ДСйствия ΠΌΠΎΠ³ΡƒΡ‚, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ, Π»ΠΈΠ±ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ клавиш Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ являСтся Windows.

C++Builder прСдоставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ прилоТСния ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности быстрого ΠΈ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ³ΠΎ проСктирования графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ — Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΊΠΎΠ½, ΠΊΠ½ΠΎΠΏΠΎΠΊ, мСню ΠΈ Ρ‚. Π΄.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ разрабатывался Π² ΡΡ‚ΠΈΠ»Π΅ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π³ΠΎ графичСского Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.

На ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов располоТатся элСмСнты для Ρ€Π°Π±ΠΎΡ‚Ρ‹ нСпосрСдствСнно с Ρ…олстом. Π’Π°ΠΊ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±, собираСм Ρ„ΠΎΡ€ΠΌΡƒ которая нас удовлСтворяСт.

ИсслСдованиС классов Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ VCL, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² — VCL-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° (Visual Component Library) — являСтся Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ C++ Builder. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ называСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, — Ρ„Π»Π°ΠΆΠΎΠΊ, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ список ΠΈΠ»ΠΈ рисунок. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‰Π΅Π»Ρ‡ΠΊΠ° Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ся Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ VCL-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ скомпилирован для выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ избавляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ Π½Π΅ΠΎΠ±Ρ…одимости всякий Ρ€Π°Π· ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ.

ВсС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ свойствами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° C++ Builder. Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ способ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹, внСшний Π²ΠΈΠ΄, Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй ΠΈ Ρ‚. Π΄.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для построСния нашСго интСрфСйса ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ списка:

TForm — Ρ„ΠΎΡ€ΠΌΠ°, ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв являСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом создаваСмого прилоТСния.

TMainMenu — Π½Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π³Π»Π°Π²Π½ΠΎΠ΅ мСню.

TOpenDialog — ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для создания ΠΎΠΊΠ½Π° Π΄ΠΈΠ°Π»ΠΎΠ³Π° «ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ»» .

TSaveDialog — ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для создания ΠΎΠΊΠ½Π° Π΄ΠΈΠ°Π»ΠΎΠ³Π° «Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»» .

TPanel — являСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ для группирования ΠΎΡ€Π³Π°Π½ΠΎΠ² управлСния.

TLabel — ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ тСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Никакого оформлСния тСкста Π½Π΅ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ†Π²Π΅Ρ‚Π° ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ Ρ‚Скста.

TEdit — ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²Π²ΠΎΠ΄ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ однострочных тСкстов.

TUpDown — ΠΊΠ½ΠΎΠΏΠΊΠ°-счСтчик, Π² ΡΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΠΈ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ TEdit ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

TRadioGroup — комбинация Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° GroupBox с Π½Π°Π±ΠΎΡ€ΠΎΠΌ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ RadioButton; слуТит ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для создания Π³Ρ€ΡƒΠΏΠΏ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ. МоТно Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ нСсколько Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ, Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΡ€Π³Π°Π½Ρ‹ управлСния Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹.

TRadioButton — ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π°Π±ΠΎΡ€ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выбираСтся ΠΎΠ΄Π½Π°. Набор рСализуСтся Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΌ количСством Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅.

TImage — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для отобраТСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ: ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ ΠΌΠ΅Ρ‚Π°Ρ„Π°ΠΉΠ»ΠΎΠ².

TStatusBar — прСдставляСт собой ряд ΠΏΠ°Π½Π΅Π»Π΅ΠΉ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΡ… полосу состояния Π² ΡΡ‚ΠΈΠ»Π΅ Windows. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ эта полоса размСщаСтся Π²Π½ΠΈΠ·Ρƒ Ρ„ΠΎΡ€ΠΌΡ‹.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния, Π΅Π³ΠΎ рСализация Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++

ЦСлью Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ рисования Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ языка программирования, с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ графичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Π’ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ возмоТности:

ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π½Π° Ρ…олст (количСство Π³Ρ€Π°Π½Π΅ΠΉ задаСтся числСнно, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ…олстС — с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ);

Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€ Π½Π° Ρ…олстС (ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ…олстС Ρ†Π΅Π½Ρ‚Ρ€Π° вращСния указываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ, ΡƒΠ³ΠΎΠ» задаСтся числСнно);

ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€ Π½Π° Ρ…олстС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ;

очистку холста ΠΎΡ‚ Ρ„ΠΈΠ³ΡƒΡ€;

сохранСниС Π² Ρ„Π°ΠΉΠ» ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ„ΠΈΠ³ΡƒΡ€;

Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ„ΠΈΠ³ΡƒΡ€ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π² Π΄Π²ΡƒΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ…: Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ полная Π·Π°ΠΌΠ΅Π½Π° ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ Π½Π° Ρ…олстС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ (прСдусмотрСна Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π΅ «ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°»).

Бозданная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСна рядом состояний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ дСйствия. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ состояниС. Анализ систСмы слСдуСт Π½Π°Ρ‡Π°Ρ‚ΡŒ с ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°: Π²Π½Π°Ρ‡Π°Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ создаСт ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ (ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚) ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ„ΠΈΠ³ΡƒΡ€, Π΄Π°Π»Π΅Π΅ слСдуСт Π²Ρ‹Π±ΠΎΡ€ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠΉ: созданиС, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹:

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

ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ — ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ просто навСсти курсор Π½Π° Ρ„ΠΈΠ³ΡƒΡ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π»Π΅Π²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΈ, послС Ρ‡Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ курсор Π² Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΈ ΠΎΡ‚ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ.

Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ — ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала Π·Π°Π΄Π°Ρ‚ΡŒ ΡƒΠ³ΠΎΠ» ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°, послС Ρ‡Π΅Π³ΠΎ произвСсти Ρ‰Π΅Π»Ρ‡ΠΎΠΊ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ Ρ„ΠΈΠ³ΡƒΡ€Π΅ Π² ΠΌΠ΅ΡΡ‚Π΅, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ†Π΅Π½Ρ‚Ρ€ вращСния.

ПослС выполнСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Π»ΠΈΠ±ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… дСйствий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сохранив Π² Ρ„Π°ΠΉΠ» ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ„ΠΈΠ³ΡƒΡ€.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ поставлСнных Π·Π°Π΄Π°Ρ‡ Π±Ρ‹Π» написан класс Polygone, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ всС ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅. Класс Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

class Polygone {

friend ostream &operator<< (ostream &output, Polygone polygon);

friend istream &operator>> (istream &input, Polygone &polygon);

private:

int n;

double size;

TPoint center;

TPoint fulcrum;

int lenX, lenY;

double angle;

public:

Polygone ();

Polygone (int n, double size, TPoint center);

Polygone (int n, double size, TPoint center, TPoint fulcrum,

double angle);

int getAmtAngles ();

double getSize ();

TPoint getCenter ();

TPoint getFulcrum ();

double getAngle ();

TPoint *getPoint ();

void setAmtAngles (int n);

void setSize (double size);

void setCorCenter (TPoint center);

void setFulcrum (TPoint fulcrum);

void setAngle (double angle);

};

Класс ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для хранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ количСства ΡƒΠ³Π»ΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ вращСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ³Π»Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ вращСния. Π”Π°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ‚ Π²ΠΏΠΎΠ»Π½Π΅ стандартноС описаниС конструкторов ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π½Π°ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΈΠ· Π½ΠΈΡ… Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ вопросов, Ρ‚. ΠΊ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ Π³Π΅Ρ‚Ρ‚Π΅Ρ€Π°ΠΌΠΈ ΠΈ ΡΠ΅Ρ‚Ρ‚Π΅Ρ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π½Π°ΠΌ значСния Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎΠΉ для рассмотрСния являСтся функция getPoint (), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΌΠ°ΡΡΠΈΠ² Ρ‚ΠΈΠΏΠ° TPoint, хранящий Π² ΡΠ΅Π±Π΅ массив Ρ‚ΠΎΡ‡Π΅ΠΊ (Π²Π΅Ρ€ΡˆΠΈΠ½), ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. Рассмотрим Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ:

TPoint *Polygone: getPoint () {

TPoint *point = new TPoint [this->n] ;

double alpha = ALPHA_FULL/this->n;

for (int i=0; i

int x = this->center. x + this->size*cos (alpha*M_PI/ALPHA_HALF);

int y = this->center. y + this->size*sin (alpha*M_PI/ALPHA_HALF);

point [i] = Point (x, y);

alpha += ALPHA_FULL/n;

}

if (angle) {

for (int i=0; i

double R = sqrt (pow (this->fulcrum. x-point [i]. x, 2) +

pow (this->fulcrum. y-point [i]. y, 2));

double beta = (ALPHA_HALF/M_PI) *acos ((point [i]. x;

this->fulcrum. x) /R);

if (this->fulcrum. y>point [i]. y)

beta = ALPHA_FULL — beta;

double gamma = beta — this->angle;

int x = this->fulcrum. x + R*cos (gamma*M_PI/ALPHA_HALF);

int y = this->fulcrum. y + R*sin (gamma*M_PI/ALPHA_HALF);

point [i] = Point (x, y);

}

}

return point;

}

Для нахоТдСния Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ полярной систСмой ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ с Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ происходит созданиС массива Ρ‚ΠΈΠΏΠ° TPoint, Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ, Ρ€Π°Π²Π½ΠΎΠΉ количСства ΡƒΠ³Π»ΠΎΠ² Ρƒ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. Начиная со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки, находится полярный ΡƒΠ³ΠΎΠ» ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅Ρ‚ся Ρ†ΠΈΠΊΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находятся Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ с Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ полярных ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, ΠΊ ΡΡ‚ΠΈΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ прибавляСтся смСщСниС Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

Π”Π°Π»Π΅Π΅, Ссли имССтся ΡƒΠ³ΠΎΠ», Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ„ΠΈΠ³ΡƒΡ€Ρƒ, Ρ‚ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅Ρ‚ся Ρ†ΠΈΠΊΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ, находится Π΄Π»ΠΈΠ½Π½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° с Π½Π°Ρ‡Π°Π»ΠΎΠΌ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ Ρ†Π΅Π½Ρ‚Ρ€Π° вращСния, ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ находится полярный ΡƒΠ³ΠΎΠ» ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠΈ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒΡŽ вращСния. К Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΠ³Π»Ρƒ прибавляСтся ΡƒΠ³ΠΎΠ», Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚вляСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ· ΠΏΠΎΠ»ΡΡ€Π½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π² Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²Ρ‹ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹.

Π€ΠΈΠ³ΡƒΡ€Ρ‹ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ хранятся с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ класса vector. Класс vector являСтся ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ для хранСния нСизвСстного числа ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ. ΠŸΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Polygone добавляСтся Π² ΡΠΏΠΈΡΠΎΠΊ, хранящийся Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° происходит ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ Π½Π° Ρ…олстС, Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события происходит ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°:

if (RadioButton1->Checked) {

int n = Edit1->Text. ToInt ();

int size = Edit2->Text. ToInt ();

Polygone polygon = Polygone (n, size, TPoint (X, Y));

heap. push_back (polygon);

updateImage (Image1);

}

Π’ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… строках происходит считываниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ‚Скстовых ΠΏΠΎΠ»Π΅ΠΉ, Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ количСство ΡƒΠ³Π»ΠΎΠ², Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ создаваСмого ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ этап — созданиС ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΈ Π·Π°Π½Π΅ΡΠ΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π² ΡΠΏΠΈΡΠΎΠΊ. Π’ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ строкС происходит ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ холста. Ѐункция обновлСния холста Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

void updateImage (TImage *Image) {

int n = heap. size ();

Image->Canvas->FillRect (Rect (0,0, Image->Width, Image->Height));

for (int i=0; i

Image->Canvas->Polygon (heap [i]. getPoint (),

heap [i]. getAmtAngles () — 1);

}

}

Π’Π½Π°Ρ‡Π°Π»Π΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранятся ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ, Ρ‚. Π΅. Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ количСство Ρ„ΠΈΠ³ΡƒΡ€ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅. Π”Π°Π»Π΅Π΅ происходит очистка холста, ΠΈ Π·Π°ΠΏΡƒΡΠΊ Ρ†ΠΈΠΊΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ прорисовываСт всС ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°.

Π’Ρ‹Π±ΠΎΡ€ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ для пСрСмСщСния ΠΈΠ»ΠΈ вращСния Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ нахоТдСния наимСньшСго расстояния Π΄ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π° Ρ„ΠΈΠ³ΡƒΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ getNumberMinDistance (int X, int Y), Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ полоТСния курсора Π½Π° Ρ…олстС.

int getNumberMinDistance (int X, int Y) {

int n = heap. size ();

int number = 0;

double minDistance = sqrt (pow ((X-heap [number]. getCenter (). x), 2) +

pow ((Y-heap [number]. getCenter (). y), 2));

for (int i=1; i

double distance = sqrt (pow ((X-heap [i]. getCenter (). x), 2) +

pow ((Y-heap [i]. getCenter (). y), 2));

if (minDistance>distance) {

minDistance = distance;

number = i;

}

}

if (heap [number]. getSize ()

return — 1;

return number;

}

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

Разработанная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сохранСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ². Π’ Ρ„Π°ΠΉΠ» Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π΅ Ρ„ΠΈΠ³ΡƒΡ€ Π½Π° Ρ…олстС, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΡΠ°ΠΌΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ — количСство ΡƒΠ³Π»ΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΈ Ρ‚. Π΄. Π”Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ записи, позволяСт Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ„ΠΈΠ³ΡƒΡ€ Π½Π° Ρ…олст.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, описанная Π² ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π² ΡΠΎΠΎΡ‚вСтствии с ΠΏΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ «Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ рисования Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²» .

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ созданной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΠ΄ΠΎΠ±Π΅Π½, прост, наглядно ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ.

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

Всё это ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ Ρ€Π°Π±ΠΎΡ‚оспособности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΎ Π΅Π΅ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡ‚ΠΈ для создания ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ирования Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ².

1. Π―Π·Ρ‹ΠΊ программирования C++: Π‘. Бтрауструп.

2. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² C++ Builder 6: А. Π―. ΠΡ€Ρ…Π°Π½Π³Π΅Π»ΡŒΡΠΊΠΈΠΉ. -М.: ΠΈΠ·Π΄. «Π‘ΠΈΠ½ΠΎΠΌ», 2003.

3. Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ C++ Builder: Н. Π‘. ΠšΡƒΠ»ΡŒΡ‚ΠΈΠ½. -Π‘ΠŸΠ‘.: Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2004.

4. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ гСомСтрия ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Срная Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° C++: М. Ласло ΠΏΠ΅Ρ€. Ρ Π°Π½Π³Π».Π’. Π›ΡŒΠ²ΠΎΠ²Π°. -М.: ΠΈΠ·Π΄. «Π‘ΠΈΠ½ΠΎΠΌ», 1997.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ