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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния для создания ΠΈ прСобразования графичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

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

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° исходных ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ ΠœΠΈΡΡ… задаСтся Π² ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½ΠΎΠΉ систСмС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, Ρ‚. Π΅. каТдая строка этой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²: ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ ΠΏΠΎ ΠΎΡΠΈ X, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΏΠΎ ΠΎΡΠΈY ΠΈ ΡΠΊΠ°Π»ΡΡ€Π½ΠΎΠ³ΠΎ (ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ) мноТитСля h. Бкалярный ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ добавляСтся для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†: ΠœΠΈΡΡ… ΠΈ Π’ΠΏΡ€Π΅ΠΎΠ±Ρ€, ΠΈ ΠΊΡ€ΠΎΠΌΠ΅ этого… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния для создания ΠΈ прСобразования графичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ образования Π Π‘ Π£Ρ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ образования «Π’итСбский государствСнный тСхнологичСский унивСрситСт»

ΠšΠ°Ρ„Π΅Π΄Ρ€Π° «ΠΠ²Ρ‚оматизация тСхнологичСских процСссов ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²»

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅ «Π‘истСмы ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ»

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния для создания ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ графичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»: студСнт Π³Ρ€ΡƒΠΏΠΏΡ‹ ИВ-1

Π Π΅ΠΏΠΎΠ² Π‘Π΅Π³Π΅Π½Ρ‡ Π’ΠΈΡ€ΠΊΠΈΡˆΠΌΡƒΡ€Π°Π΄ΠΎΠ²ΠΈΡ‡ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»: ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ ΠΊΠ°Ρ„Π΅Π΄Ρ€Ρ‹ АВПП НадёТная ΠΠ°Ρ‚Π°Π»ΡŒΡ Π›Π΅ΠΎΠ½ΠΈΠ΄ΠΎΠ²Π½Π° ВитСбск, 2014

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

Данная курсовая Ρ€Π°Π±ΠΎΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования высокого уровня C++ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ компилятора вСрсии RAD Studio XE4 Ρ„ΠΈΡ€ΠΌΡ‹ Embarcadero Technologies.

ЦСлью Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся дСмонстрация возмоТности создания прилоТСния для создания ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ графичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования Π‘++.

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· Ρ†Π΅Π»ΠΈ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π±Ρ‹Π»ΠΈ выявлСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

— Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ структуру ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ графичСскиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹;

— ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ языка программирования ΠΈ ΡΡ€Π΅Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ;

— ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΡΡ‚ΠΈ тСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

1. Анализ исходного графичСского ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² прСобразования Ρ„ΠΈΠ³ΡƒΡ€ Рис. 1. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ графичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ прСдставляСт собой ΠΊΡ€ΡƒΠ³ БэнхСма. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ d.

Π’ΠΈΠ΄ΠΎΠ²Ρ‹ΠΌΠΈ прСобразованиями графичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ прСобразования, Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡŽ ΠΈΡ… ΠΌΠ΅ΡΡ‚ополоТСния, Ρ„ΠΎΡ€ΠΌΡ‹, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π’ΠΈΠ΄ΠΎΠ²Ρ‹Π΅ прСобразования Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅. Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ прСобразования ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠ΄ΠΈΠ½ Π²ΠΈΠ΄ прСобразования, Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ — ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ сразу нСсколько Π²ΠΈΠ΄ΠΎΠ² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ. К Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ Π²ΠΈΠ΄ΠΎΠ²Ρ‹ΠΌ прСобразованиям относятся пСрСнос, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. К ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ прСобразованиям относятся Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ Π΄Ρ€.

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ — это ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ измСняСт свои Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ значСниям.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ — это Ρ‚Π°ΠΊΠΎΠ΅ Π²ΠΈΠ΄ΠΎΠ²ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ отобраТаСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ оси Π₯ ΠΈΠ»ΠΈ оси Y ΠΈΠ»ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

Π’ ΠΏΡ€Π°ΠΊΡ‚ичСской Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΈΠ΄ΠΎΠ²Ρ‹Π΅ прСобразования ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ пСрСмноТСния Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° — это ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ исходной Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ ΠœΠΈΡΡ…. Вторая — ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π²ΠΈΠ΄ΠΎΠ²ΠΎΠ³ΠΎ прСобразования Π’ΠΏΡ€Π΅ΠΎΠ±Ρ€. (пСрСноса, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, отобраТСния, ΠΈΠ»ΠΈ вращСния). Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π½ΠΎΠ²ΠΎΠ³ΠΎ полоТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° — ΠœΡ€Π΅Π·.

1.1 ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ описаниС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ прСобразования плоских Ρ„ΠΈΠ³ΡƒΡ€ ΠœΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠ΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΎΠ²ΠΎΠ³ΠΎ прСобразования исходной Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠœΠΈΡΡ…? Π’ΠΏΡ€Π΅ΠΎΠ±Ρ€ = ΠœΡ€Π΅Π· (1)

Π—Π΄Π΅ΡΡŒ Π’ΠΏΡ€Π΅ΠΎΠ±Ρ€ — ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΎΠ²ΠΎΠ³ΠΎ прСобразования, Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ Ρ€Π°Π½Π³Π°, квадратная, способна ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Π΅ Π² ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ…, ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт этой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΡΠ²ΠΎΠΉ, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ свой Π²ΠΈΠ΄ прСобразования:

— ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ l ΠΈ m ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° ΠΏΠ΅Ρ€Π΅Π½ΠΎΡ;

— ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ b ΠΈ d ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° ΡΠ΄Π²ΠΈΠ³;

— ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ a, e ΠΈ s ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° исходных ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ ΠœΠΈΡΡ… задаСтся Π² ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½ΠΎΠΉ систСмС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, Ρ‚. Π΅. каТдая строка этой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²: ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ ΠΏΠΎ ΠΎΡΠΈ X, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΏΠΎ ΠΎΡΠΈY ΠΈ ΡΠΊΠ°Π»ΡΡ€Π½ΠΎΠ³ΠΎ (ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ) мноТитСля h. Бкалярный ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ добавляСтся для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†: ΠœΠΈΡΡ… ΠΈ Π’ΠΏΡ€Π΅ΠΎΠ±Ρ€, ΠΈ ΠΊΡ€ΠΎΠΌΠ΅ этого, ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ссли значСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π² ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½ΠΎΠΉ систСмС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π΅ΠΌ ΠΆΠ΅ значСниям Π² Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²ΠΎΠΉ систСмС, Ρ‚ΠΎ ΡΠΊΠ°Π»ΡΡ€Π½Ρ‹ΠΉ ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ h Ρ€Π°Π²Π΅Π½ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅. Π’ΠΎΠ³Π΄Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° исходных ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, состоящСй ΠΈΠ· k Π²Π΅Ρ€ΡˆΠΈΠ½, Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄ ПослС подстановки ΠœΠΈΡΡ… ΠΈ Π’ΠΏΡ€Π΅ΠΎΠ±Ρ€ Π² ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ (1) ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π—Π΄Π΅ΡΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠœΡ€Π΅Π· опрСдСляСт Π½ΠΎΠ²ΠΎΠ΅ Π½Π΅ΠΎΡ€Ρ‚ΠΎΠ½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ состояниС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π² ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½ΠΎΠΉ систСмС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ послС прСобразования. ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π½Π΅ΠΎΡ€Ρ‚ΠΎΠ½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠœΡ€Π΅Π· Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π² Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²ΠΎΠΉ систСмС Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ поэтому, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ прорисовку ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π½ΠΎΠΉ плоскости (Ρ‚.Π΅. Π² Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²ΠΎΠΉ систСмС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡ… ΠΎΡ€Ρ‚ΠΎΠ½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Для Π½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ послСднСго столбца ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠœΡ€Π΅Π· приводятся ΠΊ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (Π² ΡΠ»ΡƒΡ‡Π°Π΅, Ссли ΠΎΠ½ΠΈ Π½Π΅ Ρ€Π°Π²Π½Ρ‹ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅), для Ρ‡Π΅Π³ΠΎ всС значСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ дСлятся Π½Π° ΡΠΊΠ°Π»ΡΡ€Π½Ρ‹ΠΉ ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ hk Π΄Π°Π½Π½ΠΎΠΉ строки ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ся ΠœΠ½ΠΎΡ€ΠΌ Ρ‚. Π΅.

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π’ΠΌΠ°ΡΡˆΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

Π³Π΄Π΅: a — ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ оси X;

e — ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ оси Y;

s — ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΠ±Ρ‰Π΅Π³ΠΎ измСнСния ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° (вдоль осСй X ΠΈ Y).

Если ΠΎΠ½ΠΈ «Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹», Ρ‚ΠΎ a, e, s — Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ вСщСствСнныС числа. Если ΠΎΠ½ΠΈ «Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹», Ρ‚ΠΎ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ Ρ€Π°Π²Π½Ρ‹ 1.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° A (x, y) прСобразуСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (10) ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (11) ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ исходныС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚ΠΎΡ‡ΠΊΠΈ, А — x ΠΈ y ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ся Π² a ΠΈ e Ρ€Π°Π· соотвСтствСнно. Π­Ρ‚ΠΈΠΌ обСспСчиваСтся ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠ² вдоль осСй X ΠΈ Y. Если, Π° ΠΈ Π΅ Π±ΠΎΠ»ΡŒΡˆΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹, ΠΌΠ°ΡΡˆΡ‚Π°Π± Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ увСличиваСтся, Ссли ΠΎΠ½ΠΈ мСньшС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ (Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠ΅ нуля) — ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ s, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСлится ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΏΡ€ΠΈ Π½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²ΠΊΠ΅ (для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΊ Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²Ρ‹ΠΌ) дСйствуСт Π½Π° ΠΌΠ°ΡΡˆΡ‚Π°Π± Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ-ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ порядкС. Если s Π±ΠΎΠ»ΡŒΡˆΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ — ΠΌΠ°ΡΡˆΡ‚Π°Π± вдоль осСй X ΠΈ Y ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ся, Ссли мСньшС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ — увСличиваСтся.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° отобраТСния Π’ΠΎΡ‚ΠΎΠ±Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄ Π³Π΄Π΅: a — ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ отобраТСния ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ оси Y;

e — ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ отобраТСния ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ оси X;

s — ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ отобраТСния ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ отобраТСния a, e, s «Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹», Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ€Π°Π²Π½Ρ‹ -1, Ссли «Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹», Ρ‚ΠΎ — +1.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° (12) обСспСчиваСт «Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅» ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ссли числСнныС значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² a, e, s — Ρ€Π°Π²Π½Ρ‹ -1. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ a, e, s ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ -1 Π² Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ сторону (Π½ΠΎ Π½Π΅ Π±ΠΎΠ»ΡŒΡˆΠ΅ 0) ΠΎΠ½ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, вслСдствиС Ρ‡Π΅Π³ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ оказываСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΌ, Π½ΠΎ ΠΈ ΠΈΡΠΊΠ°ΠΆΠ΅Π½Π½Ρ‹ΠΌ. Π’Π°ΠΊΠΎΠ΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° называСтся — эффСкт «ΠΊΡ€ΠΈΠ²ΠΎΠ³ΠΎ Π·Π΅Ρ€ΠΊΠ°Π»Π°».

ΠŸΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π²ΠΎΠΊΡ€ΡƒΠ³ Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚

X=x0 + (x — x0) * cos (a) — (y — y0) * sin (a);

Y=y0+ (y — y0) * cos (a) + (x — x0) *sin (a);

Π“Π΄Π΅ Ρ…0, Ρƒ0 — ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ†Π΅Π½Ρ‚Ρ€Π° Ρ„ΠΈΠ³ΡƒΡ€Ρ‹; ΡƒΠ³ΠΎΠ», Π° — ΡƒΠ³ΠΎΠ» смСщСния; Ρ…, Ρƒ — исходныС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ смСщаСмой Ρ‚ΠΎΡ‡ΠΊΠΈ.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° вращСния Π²ΠΎΠΊΡ€ΡƒΠ³ Ρ†Π΅Π½Ρ‚Ρ€Π° Π΅ΡΡ‚ΡŒ комбинация ΠΌΠ°Ρ‚Ρ€ΠΈΡ† пСрСмСщСния ΠΎΠΏΠΎΡ€Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² Ρ†Π΅Π½Ρ‚Ρ€.

[cos (Π°) -sin (Π°)

sin (Π°) cos (Π°)]

1.2 Π’Ρ‹Π±ΠΎΡ€ ΠΈ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ языка программирования ΠΈ ΡΡ€Π΅Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ C++. ΠŸΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ графичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² язык C++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся языком высокого уровня ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ быстро ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ графичСского ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° систСма программирования C++ вСрсии RAD Studio XE4 Ρ„ΠΈΡ€ΠΌΡ‹ Embarcadero Technologies, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° прСдоставляСт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности для программирования ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠžΠ‘ Windows.

C++ содСрТит срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ эффСктивности для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ спСктра Π·Π°Π΄Π°Ρ‡, ΠΎΡ‚ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Π΄ΠΎ Π²Π΅ΡΡŒΠΌΠ° слоТных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… комплСксов. Π’ ΠΎΡΠ½ΠΎΠ²Π΅ C++ Π»Π΅ΠΆΠΈΡ‚ язык Π‘ΠΈΠΌΡƒΠ»Π°.

Достоинства Π‘++:

— Π’ысокая ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΡΠ·Ρ‹ΠΊΠΎΠΌ Π‘ΠΈ: ΠΊΠΎΠ΄ Π½Π° Π‘ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»ΠΊΠ°ΠΌΠΈ скомпилирован компилятором C++. Π’Π½Π΅ΡˆΠ½Π΅ΡΠ·Ρ‹ΠΊΠΎΠ²ΠΎΠΉ интСрфСйс являСтся ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° Π‘ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈΠ· C++ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚, ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ — ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ограничСниях ΠΊΠΎΠ΄ Π½Π° Π‘++ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ внСшнС Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΌΠΎ ΠΎΡ‚ ΠΊΠΎΠ΄Π° Π½Π° Π‘ΠΈ (конструкция extern «C»).

— ΠšΠ°ΠΊ слСдствиС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° — Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π―Π·Ρ‹ΠΊ спроСктирован Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ программисту ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ всСми аспСктами структуры ΠΈ ΠΏΠΎΡ€ΡΠ΄ΠΊΠ° исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Один ΠΈΠ· Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Π‘++ — «Π½Π΅ ΠΏΠ»Π°Ρ‚ΠΈΡˆΡŒ Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΡˆΡŒ» (см. Π€ΠΈΠ»ΠΎΡΠΎΡ„ия C++) — Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ·Ρ‹ΠΊΠΎΠ²Ρ‹Ρ… возмоТностСй, приводящая ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ расходам, Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ для использования. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅.

— ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² позволяСт ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΈ Ρ‘ΠΌΠΊΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ выраТСния Π½Π°Π΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π² Π΅ΡΡ‚СствСнной алгСбраичСской Ρ„ΠΎΡ€ΠΌΠ΅.

— Π˜ΠΌΠ΅Π΅Ρ‚ся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ управлСния ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ const, mutable, volatile).

— Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ константных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠ»ΡƒΠΆΠΈΡ‚ подсказкой для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ-Ρ‡Π»Π΅Π½ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΡƒ константности позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ Ρ†Π΅Π»ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° (константный для чтСния, нСконстантный для измСнСния). ОбъявлСниС mutable позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π²ΠΈΠ΄Π΅ ΠΈΠ·Π²Π½Π΅ ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ кэши ΠΈ Π»Π΅Π½ΠΈΠ²Ρ‹Π΅ вычислСния.

— Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ. Для Π‘++ сущСствуСт ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΡƒΡ‡Π΅Π±Π½ΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½ΠΎΠΉ Π½Π° Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ языки. Π―Π·Ρ‹ΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΠΎΡ€ΠΎΠ³ вхоТдСния, Π½ΠΎ ΡΡ€Π΅Π΄ΠΈ всСх языков Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌΠΈ возмоТностями.

1.3 Π—Π°Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Базовая Ρ„ΠΈΠ³ΡƒΡ€Π° задаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ матСматичСских Ρ„ΠΎΡ€ΠΌΡƒΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² задания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² языка программирования с++.

ΠžΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ отрисовки двумя ΠΏΠΎΠ»ΡƒΠΊΡ€ΡƒΠ³Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° отрисовки сСкторов Π²ΠΈΠ΄Π°:

Image->Canvas->Pie (xl, yl, x2, y2, x3,y3,x4,y4)

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ xl, yl, x2, Ρƒ2 ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΊΡ€ΡƒΠ³, Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся сСктор; Ρ…3, Ρƒ3, Ρ…4 ΠΈ Ρƒ4 — прямыС — Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ сСктора. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° Π³Ρ€Π°Π½ΠΈΡ† совпадаСт с Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ ΠΊΡ€ΡƒΠ³Π°. Π‘Π΅ΠΊΡ‚ΠΎΡ€ вырСзаСтся ΠΏΡ€ΠΎΡ‚ΠΈΠ² часовой стрСлки ΠΎΡ‚ ΠΏΡ€ΡΠΌΠΎΠΉ, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (Ρ…3, Ρƒ3), ΠΊ ΠΏΡ€ΡΠΌΠΎΠΉ, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (Ρ…4, Ρƒ4). Π’ΠΈΠ΄ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ сСктора ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ значСния свойства Π Π΅n, Π° Π²ΠΈΠ΄ Π·Π°Π»ΠΈΠ²ΠΊΠΈ области, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ — значСния свойства Brush Ρ‚ΠΎΠΉ повСрхности, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ рисуСт .

Для отрисовки Π΄ΡƒΠ³ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π΅Π»ΠΎΠ³ΠΎ сСктора ΠΊΡ€ΡƒΠ³Π° БэнхСма ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Arc — отрисовка части Π΄ΡƒΠ³ΠΈ окруТности.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ выглядит Ρ‚Π°ΠΊ :

Image->Canvas->Arc (xl, yl, x2, y2, x3,y3,x4,y4) ,

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ x1, yl, Ρ…2, y2 ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ, Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Π΄ΡƒΠ³Π°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ…3 ΠΈ y3 Π·Π°Π΄Π°ΡŽΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ, Π° Ρ…4 ΠΈ Ρƒ4 — ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π΄ΡƒΠ³ΠΈ. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ (конСчная) Ρ‚ΠΎΡ‡ΠΊΠ° Π΄ΡƒΠ³ΠΈ — это Ρ‚ΠΎΡ‡ΠΊΠ° пСрСсСчСния Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ окруТности ΠΈ ΠΏΡ€ΡΠΌΠΎΠΉ, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΈΠ· Ρ†Π΅Π½Ρ‚Ρ€Π° эллипса Π² Ρ‚ΠΎΡ‡ΠΊΡƒ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Ρ…3 ΠΈ y3 (Ρ…4, Ρƒ4). ΠœΠ΅Ρ‚ΠΎΠ΄ Arc Π²Ρ‹Ρ‡Π΅Ρ€Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π΄ΡƒΠ³Ρƒ ΠΏΡ€ΠΎΡ‚ΠΈΠ² часовой стрСлки ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ. Π¦Π²Π΅Ρ‚, Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½Π° ΠΈ ΡΡ‚ΠΈΠ»ΡŒ Π»ΠΈΠ½ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ вычСрчиваСтся Π΄ΡƒΠ³Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ значСниями свойства Π Π΅n повСрхности, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ выполняСтся Π²Ρ‹Π²ΠΎΠ΄ .

Для Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹

M = X +(-D/2)*cos (B *M_PI/180);

N = Y+(-D/2)*sin (B *M_PI/180);

M1 = X + D/2*cos (B *M_PI/180);

N1 = Y + D/2*sin (B *M_PI/180);

M3 = X+(-3*D/4)*cos (B *M_PI/180)-(-3*D/4)*sin (B *M_PI/180);

N3 = Y+(-3*D/4)*cos (B *M_PI/180)+(-3*D/4)*sin (B *M_PI/180);

K = X+(-D/2+D/32)*cos (B *M_PI/180);

L = Y+(-D/2+D/32)*sin (B *M_PI/180);

K1= X -(-D/4)*sin (B *M_PI/180);

L1= Y+(-D/4)*cos (B *M_PI/180);

K2 = X + D/4*cos (B *M_PI/180)-(-D/4)*sin (B *M_PI/180);

L2 = Y+(-D/4)*cos (B *M_PI/180)+D/4*sin (B *M_PI/180);

K3 = X+3*D/4*cos (B *M_PI/180);

L3 = Y+3*D/4*sin (B *M_PI/180);

Form2->PaintBox1->Canvas->Brush->Color=clBlack;

Form2->PaintBox1->Canvas->Pie (X-D/2, Y-D/2, X+D/2, Y+D/2, M, N, M1, N1);

Form2->PaintBox1->Canvas->Brush->Color=clWhite;

Form2->PaintBox1->Canvas->Pie (X-D/2, Y-D/2, X+D/2, Y+D/2, M1, N1, M, N);

Form2->PaintBox1->Canvas->Arc (X-D/2+D/32, Y-D/2+D/32, X+D/2-D/32, Y+D/2-D/32, M3, N3, K, L);

Form2->PaintBox1->Canvas->Arc (X-D/2+2*D/32, Y-D/2+2*D/32, X+D/2−2*D/32, Y+D/2−2*D/32, M3, N3, K, L);

Form2->PaintBox1->Canvas->Arc (X-D/2+3*D/32, Y-D/2+3*D/32, X+D/2−3*D/32, Y+D/2−3*D/32, M3, N3, K, L);

Form2->PaintBox1->Canvas->Arc (X-D/2+4*D/32, Y-D/2+4*D/32, X+D/2−4*D/32, Y+D/2−4*D/32, K1, L1, M3, N3);

Form2->PaintBox1->Canvas->Arc (X-D/2+5*D/32, Y-D/2+5*D/32, X+D/2−5*D/32, Y+D/2−5*D/32, K1, L1, M3, N3);

Form2->PaintBox1->Canvas->Arc (X-D/2+6*D/32, Y-D/2+6*D/32, X+D/2−6*D/32, Y+D/2−6*D/32, K1, L1, M3, N3);

Form2->PaintBox1->Canvas->Arc (X-D/2+7*D/32, Y-D/2+7*D/32, X+D/2−7*D/32, Y+D/2−7*D/32, K2, L2, K1, L1);

Form2->PaintBox1->Canvas->Arc (X-D/2+8*D/32, Y-D/2+8*D/32, X+D/2−8*D/32, Y+D/2−8*D/32, K2, L2, K1, L1);

Form2->PaintBox1->Canvas->Arc (X-D/2+9*D/32, Y-D/2+9*D/32, X+D/2−9*D/32, Y+D/2−9*D/32, K2, L2, K1, L1);

Form2->PaintBox1->Canvas->Arc (X-D/2+10*D/32, Y-D/2+10*D/32, X+D/2−10*D/32, Y+D/2−10*D/32, K3, L3, K2, L2);

Form2->PaintBox1->Canvas->Arc (X-D/2+11*D/32, Y-D/2+11*D/32, X+D/2−11*D/32, Y+D/2−11*D/32, K3, L3, K2, L2);

Form2->PaintBox1->Canvas->Arc (X-D/2+12*D/32, Y-D/2+12*D/32, X+D/2−12*D/32, Y+D/2−12*D/32, K3, L3, K2, L2);

2. Π ΠΠ—Π ΠΠ‘ΠžΠ’ΠšΠ ΠΠ›Π“ΠžΠ Π˜Π’ΠœΠ Π ΠΠ‘ΠžΠ’Π« ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ« ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, послС Ρ‡Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса FGRClass ΠΎΡ‚ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠΉ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ Draw ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния Π΄Π°Π½Π½Ρ‹Ρ…. Из ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Draw Π² Ρ‚Π°ΠΉΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π΅Π³ΠΎ характСристика. Π’ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π΅ происходит ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности условий. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ коррСктности условия Ρ‚Π°ΠΉΠΌΠ΅Ρ€ выполняСт отрисовку ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΡΠΎΠΎΡ‚вСтствии с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ значСниями, Π² ΡΠ»ΡƒΡ‡Π°Π΅ нСсоотвСтствия условий Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ дСйствиС. ΠŸΡ€ΠΎΡ†Π΅ΡΡ отрисовки Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π΅Π½, Ρ†ΠΈΠΊΠ» приостанавливаСтся ΠΏΡ€ΠΈ остановкС Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ‚ся ΠΏΡ€ΠΈ Π΅Π³ΠΎ запускС. Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выполняСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

3. ΠžΠŸΠ˜Π‘ΠΠΠ˜Π• ΠžΠ‘ΠΠžΠ’ΠΠ«Π₯ ΠšΠžΠœΠŸΠžΠΠ•ΠΠ’ΠžΠ’ ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ« И ΠŸΠžΠ‘Π›Π•Π”ΠžΠ’ΠΠ’Π•Π›Π¬ΠΠžΠ‘Π’Π˜ Π ΠΠ—Π ΠΠ‘ΠžΠ’ΠšΠ˜ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: PaintBox1, Timer1, Button1, Panel1, Panel2, Edit1, Button2, Button3, Edit2, Button4, Panel3, Button5, Button6, Button7, Button8, Label1, Label2, Label3, Label4, Label5.

PaintBox1 — ΠΏΠΎΠ»Π΅ отобраТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Timer1 — Ρ‚Π°ΠΉΠΌΠ΅Ρ€ для исполнСния эмуляции вращСния

Button1 — ΠΊΠ½ΠΎΠΏΠΊΠ° отрисовки Ρ„ΠΈΠ³ΡƒΡ€Ρ‹

Button2 — ΠΊΠ½ΠΎΠΏΠΊΠ° измСнСния ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°

Button3 — ΠΊΠ½ΠΎΠΏΠΊΠ° пуска эмуляции вращСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π΅

Button4 — ΠΊΠ½ΠΎΠΏΠΊΠ° остановки эмуляции вращСния

Button5 — ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ направлСния вращСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Button6 — ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ направлСния вращСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Button7 — ΠΊΠ½ΠΎΠΏΠΊΠ° увСличСния скорости вращСния

Button8 — ΠΊΠ½ΠΎΠΏΠΊΠ° ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ скорости вращСния

Edit1 — ΠΏΠΎΠ»Π΅ для Π²Π²ΠΎΠ΄Π° числа ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ измСнСния ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° Ρ„ΠΈΠ³ΡƒΡ€Ρ‹.

Edit2 — ΠΏΠΎΠ»Π΅ отобраТСния измСнСния скорости вращСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ вычислСния для задания Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, Π·Π°Ρ‚Π΅ΠΌ Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящий для практичСской Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†Π΅Π»Π΅ΠΉ ΠΈ Π·Π°Π΄Π°Ρ‡ язык программирования Π‘++. Π‘Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, послС Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ написаниС исходного ΠΊΠΎΠ΄Π°.

Ρ„ΠΈΠ³ΡƒΡ€Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ плоский опСрация

4. ИБΠ₯ΠžΠ”ΠΠ«Π™ ΠšΠžΠ” ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ«

——————————————-UNIT2.H—————————————————-;

//—————————————————————————————————————;

#ifndef Unit2H

#define Unit2H

//—————————————————————————————————————;

#include

#include

#include

#include

#include

#include

//—————————————————————————————————————;

class TForm2: public TForm

{

__published: // IDE-managed Components

TPaintBox *PaintBox1;

TTimer *Timer1;

TButton *Button1;

TPanel *Panel1;

TPanel *Panel2;

TEdit *Edit1;

TButton *Button2;

TButton *Button3;

TEdit *Edit2;

TButton *Button4;

TPanel *Panel3;

TButton *Button5;

TButton *Button6;

TButton *Button7;

TButton *Button8;

TLabel *Label1;

TLabel *Label2;

TLabel *Label3;

TLabel *Label4;

TLabel *Label5;

void __fastcall Button1Click (TObject *Sender);

void __fastcall Timer1Timer (TObject *Sender);

void __fastcall Button3Click (TObject *Sender);

void __fastcall Button7Click (TObject *Sender);

void __fastcall Button8Click (TObject *Sender);

void __fastcall Button4Click (TObject *Sender);

void __fastcall Button5Click (TObject *Sender);

void __fastcall Button6Click (TObject *Sender);

void __fastcall Button2Click (TObject *Sender);

void __fastcall gjgjg (TObject *Sender, System: WideChar &Key);

void __fastcall trththt (TObject *Sender, System: WideChar &Key);

private: // User declarations

public: // User declarations

__fastcall TForm2(TComponent* Owner);

};

class FGRClass

{

public:

void Draw ();

double X, Y, D, B, M, N, M1,N1,M2,N2,M3,N3,K, L, K1,L1;

double K2, L2,K3,L3;

double H;

double Vx, By;

};

//—————————————————————————————————————;

extern PACKAGE TForm2 *Form2;

//—————————————————————————————————————;

#endif

——————————- UNIT2. CPP———————————————-;

//—————————————————————————————————————;

#include

#pragma hdrstop

#include «Unit2.h»

//—————————————————————————————————————;

#pragma package (smart_init)

#pragma resource «*.dfm»

TForm2 *Form2;

//—————————————————————————————————————;

__fastcall TForm2: TForm2(TComponent* Owner)

: TForm (Owner)

{

}

const int H = 150;

//—————————————————————————————————————;

FGRClass FGR[1];

void FGRClass: Draw ()

{

M = X +(-D/2)*cos (B *M_PI/180);

N = Y+(-D/2)*sin (B *M_PI/180);

M1 = X + D/2*cos (B *M_PI/180);

N1 = Y + D/2*sin (B *M_PI/180);

M3 = X+(-3*D/4)*cos (B *M_PI/180)-(-3*D/4)*sin (B *M_PI/180);

N3 = Y+(-3*D/4)*cos (B *M_PI/180)+(-3*D/4)*sin (B *M_PI/180);

K = X+(-D/2+D/32)*cos (B *M_PI/180);

L = Y+(-D/2+D/32)*sin (B *M_PI/180);

K1= X -(-D/4)*sin (B *M_PI/180);

L1= Y+(-D/4)*cos (B *M_PI/180);

K2 = X + D/4*cos (B *M_PI/180)-(-D/4)*sin (B *M_PI/180);

L2 = Y+(-D/4)*cos (B *M_PI/180)+D/4*sin (B *M_PI/180);

K3 = X+3*D/4*cos (B *M_PI/180);

L3 = Y+3*D/4*sin (B *M_PI/180);

Form2->PaintBox1->Canvas->Brush->Color=clBlack;

Form2->PaintBox1->Canvas->Pie (X-D/2, Y-D/2, X+D/2, Y+D/2, M, N, M1, N1);

Form2->PaintBox1->Canvas->Brush->Color=clWhite;

Form2->PaintBox1->Canvas->Pie (X-D/2, Y-D/2, X+D/2, Y+D/2, M1, N1, M, N);

Form2->PaintBox1->Canvas->Arc (X-D/2+D/32, Y-D/2+D/32, X+D/2-D/32, Y+D/2-D/32, M3, N3, K, L);

Form2->PaintBox1->Canvas->Arc (X-D/2+2*D/32, Y-D/2+2*D/32, X+D/2−2*D/32, Y+D/2−2*D/32, M3, N3, K, L);

Form2->PaintBox1->Canvas->Arc (X-D/2+3*D/32, Y-D/2+3*D/32, X+D/2−3*D/32, Y+D/2−3*D/32, M3, N3, K, L);

Form2->PaintBox1->Canvas->Arc (X-D/2+4*D/32, Y-D/2+4*D/32, X+D/2−4*D/32, Y+D/2−4*D/32, K1, L1, M3, N3);

Form2->PaintBox1->Canvas->Arc (X-D/2+5*D/32, Y-D/2+5*D/32, X+D/2−5*D/32, Y+D/2−5*D/32, K1, L1, M3, N3);

Form2->PaintBox1->Canvas->Arc (X-D/2+6*D/32, Y-D/2+6*D/32, X+D/2−6*D/32, Y+D/2−6*D/32, K1, L1, M3, N3);

Form2->PaintBox1->Canvas->Arc (X-D/2+7*D/32, Y-D/2+7*D/32, X+D/2−7*D/32, Y+D/2−7*D/32, K2, L2, K1, L1);

Form2->PaintBox1->Canvas->Arc (X-D/2+8*D/32, Y-D/2+8*D/32, X+D/2−8*D/32, Y+D/2−8*D/32, K2, L2, K1, L1);

Form2->PaintBox1->Canvas->Arc (X-D/2+9*D/32, Y-D/2+9*D/32, X+D/2−9*D/32, Y+D/2−9*D/32, K2, L2, K1, L1);

Form2->PaintBox1->Canvas->Arc (X-D/2+10*D/32, Y-D/2+10*D/32, X+D/2−10*D/32, Y+D/2−10*D/32, K3, L3, K2, L2);

Form2->PaintBox1->Canvas->Arc (X-D/2+11*D/32, Y-D/2+11*D/32, X+D/2−11*D/32, Y+D/2−11*D/32, K3, L3, K2, L2);

Form2->PaintBox1->Canvas->Arc (X-D/2+12*D/32, Y-D/2+12*D/32, X+D/2−12*D/32, Y+D/2−12*D/32, K3, L3, K2, L2);

}

void __fastcall TForm2: Button1Click (TObject *Sender)

{

FGR[1]. X = 285;

FGR[1]. Y = 175;

FGR[1]. D = H;

FGR[1]. Vx = 0;

FGR[1]. By = 0;

FGR[1]. B = 0;

Button1->Caption = «Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ состояниС» ;

}

//—————————————————————————————————————;

void __fastcall TForm2: Timer1Timer (TObject *Sender)

{

FGR[1]. B += FGR[1]. By;

PaintBox1 -> Repaint ();FGR[1]. Draw ();

}

//—————————————————————————————————————;

void __fastcall TForm2: Button3Click (TObject *Sender)

{

FGR[1]. By = 5;

Edit2 -> Text = FGR[1]. By;

Button6->Enabled = false;

Button5->Enabled = true;

Button3->Caption = «Π—Π°Π½ΠΎΠ²ΠΎ» ;

}

//————————————————————————————————————-;

void __fastcall TForm2: Button7Click (TObject *Sender)

{

Button8->Enabled = true ;

FGR[1]. By += 5;

if (FGR[1]. By >=180)

{

Button7->Enabled = false;

}

Edit2 -> Text = FGR[1]. By;

if (Button6->Enabled)

{ if (FGR[1]. By >=0)

{

Button7->Enabled = false ;

Button8->Enabled = true ;

}

Edit2 -> Text = FGR[1]. By;

}

if (Button5->Enabled)

{

if (FGR[1]. By >=0||FGR[1]. By <=180)

{

Button8->Enabled = true ;

}

Edit2 -> Text = FGR[1]. By;

}

}

//—————————————————————————————————————;

void __fastcall TForm2: Button8Click (TObject *Sender)

{

FGR[1]. By -= 5;

if (FGR[1]. By <=-180)

{

Button8->Enabled = false ;

}

Edit2 -> Text = FGR[1]. By;

if (Button6->Enabled)

{

if (FGR[1]. By <=0)

{

Button7->Enabled = true ;

}

Edit2 -> Text = FGR[1]. By;

}

if (Button5->Enabled)

{

if (FGR[1]. By <=0)

{

Button8->Enabled = false ;

}

Button7->Enabled = true ;

Edit2 -> Text = FGR[1]. By;

}

}

//—————————————————————————————————————;

void __fastcall TForm2: Button4Click (TObject *Sender)

{

FGR[1]. By = 0;

Edit2 -> Text = FGR[1]. By;

Button3->Caption = «ΠŸΡƒΡΠΊ» ;

}

//—————————————————————————————————————;

void __fastcall TForm2: Button5Click (TObject *Sender)

{

FGR[1]. By = -FGR[1]. By;

Edit2 -> Text = FGR[1]. By;

Button8 :Button7;

Button5->Enabled = false;

Button6->Enabled = true;

}

//—————————————————————————————————————;

void __fastcall TForm2: Button6Click (TObject *Sender)

{

FGR[1]. By = -FGR[1]. By;

Edit2 -> Text = FGR[1]. By;

Button6->Enabled = false;

Button5->Enabled = true;

}

//—————————————————————————————————————;

void __fastcall TForm2: Button2Click (TObject *Sender)

{

FGR[1]. Vx =StrToFloat (Edit1 -> Text);

if (FGR[1]. Vx>=232||FGR[1].Vx<=0)

{

ShowMessage («n ΠžΠ¨Π˜Π‘ΠšΠ Π—ΠΠΠ§Π•ΠΠ˜Π― 404 n Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ значСния, послС Ρ‡Π΅Π³ΠΎ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠœΠΠ‘Π¨Π’ΠΠ‘»);

return; }

else if (Edit1->Text=="")

{ShowMessage («n ΠžΠ¨Π˜Π‘ΠšΠ Π—ΠΠΠ§Π•ΠΠ˜Π― 404 n Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ значСния, послС Ρ‡Π΅Π³ΠΎ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠœΠΠ‘Π¨Π’ΠΠ‘»);

return; }

else if (FGR[1]. Vx<=232||FGR[1].Vx>=0)

{FGR[1].D = H * (FGR[1]. Vx/100);

}

}

//—————————————————————————————————————;

void __fastcall TForm2: gjgjg (TObject *Sender, System: WideChar &Key)

Key>'9'))Key=0;

//—————————————————————————————————————;

void __fastcall TForm2: trththt (TObject *Sender, System: WideChar &Key)

{Key=0;

}

//—————————————————————————————————————;

5. ΠŸΠ ΠžΠ’Π•Π ΠšΠ ΠšΠžΠ Π Π•ΠšΠ’ΠΠžΠ‘Π’Π˜ Π ΠΠ‘ΠžΠ’Π« ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ« Π’ Π ΠΠ—Π›Π˜Π§ΠΠ«Π₯ Π Π•Π–Π˜ΠœΠΠ₯

1. Π Π°Π±ΠΎΡ‡Π΅Π΅ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΏΡ€ΠΎΡ€ΠΈΡΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ

2. На ΡΡ‚ΠΎΠΌ этапС происходит ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

3. На ΡΡ‚ΠΎΠΌ этапС происходит Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Бписок использованной Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

1. ΠΡ€Ρ…Π°Π½Π³Π΅Π»ΡŒΡΠΊΠΈΠΉ А. Π―. C++Builder 6. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΎΠ΅ пособиС. Книга 1. Π―Π·Ρ‹ΠΊ C++. М.: Π‘ΠΈΠ½ΠΎΠΌ 2002 Π³. —- 544 ΠΈΠ».

2. ΠΡ€Ρ…Π°Π½Π³Π΅Π»ΡŒΡΠΊΠΈΠΉ А. Π―. C++Builder 6. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΎΠ΅ пособиС. Книга 2. ΠšΠ»Π°ΡΡΡ‹ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. — Πœ.: Π‘ΠΈΠ½ΠΎΠΌ-ΠŸΡ€Π΅ΡΡ, 2002 Π³. — 528 с: ΠΈΠ».

3. Π¨ΠΈΠΊΠΈΠ½ Π•. Π’., БорСсков А. Π’. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°. Π”ΠΈΠ½Π°ΠΌΠΈΠΊΠ°, рСалистичСскиС изобраТСния. М.: Π”Π˜ΠΠ›ΠžΠ“ МИЀИ, 1996. 288 с.

4. ΠšΡƒΠ»ΡŒΡ‚ΠΈΠ½ Н. Π‘. C++ Builder Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. — Π‘Пб.: Π‘Π₯Π’ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2005. — 336 с

5. ΠŸΠΎΠ΄ΠΊΡƒΡ€ М. Π›., ΠŸΠΎΠ΄ΠΊΡƒΡ€ П. Н., Π‘ΠΌΠΎΠ»Π΅Π½Ρ†Π΅Π² Н. К. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΡ€Π΅Π΄Π΅ Borland C++ Builder с ΠΌΠ°Ρ‚СматичСскими Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ MATLAB Π‘/Π‘++. — Πœ.: Π”ΠœΠš ΠŸΡ€Π΅ΡΡ, 2006. 496 с.: ΠΈΠ».

6. Π‘Ρ€ΡƒΠ½ΠΎ Бабэ ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈ ΡΡΠ½ΠΎ ΠΎ Borland C++: ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π». — Πœ.: Π‘Π˜ΠΠžΠœ. — 416 с.: ΠΈΠ».

.ur

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