рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

РисованиС в PyQt5

БистСма рисования PyQt5 способна ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, изобраТСния ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹. РисованиС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² прилоТСниях, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, ΠΈΠ»ΠΈ ΠΌΡ‹ создаём ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ с нуля. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ рисунок, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ API рисования, прСдоставлСнноС инструмСнтариСм PyQt5.

РисованиС дСлаСтся Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π° paintEvent(). Код рисования размСщаСтся ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ begin() ΠΈ end() ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° QPainter. Он выполняСт Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ рисованиС Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°Ρ… ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтах.

РисованиС тСкста

ΠœΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с рисования Unicode-тСкста Π² ΠΎΠΊΠ½Π΅.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ рисуСм русский тСкст. ВСкст Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ.

РисованиС дСлаСтся Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… paintEvent.

Класс QPainter ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° всС Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ рисованиС. ВсС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ рисования ΠΈΠ΄ΡƒΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ begin() ΠΈ end().

ЀактичСскоС рисованиС дСлСгируСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ drawText().

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ опрСдСляСм Ρ€ΡƒΡ‡ΠΊΡƒ ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ тСкст.

ΠœΠ΅Ρ‚ΠΎΠ΄ drawText() рисуСт тСкст Π² ΠΎΠΊΠ½Π΅. ΠœΠ΅Ρ‚ΠΎΠ΄ rect() события рисования Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½.

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

РисованиС Ρ‚ΠΎΡ‡Π΅ΠΊ

Π’ΠΎΡ‡ΠΊΠ° – это самый простой графичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нарисован. Π­Ρ‚ΠΎ малСнькоС ΠΏΡΡ‚Π½Ρ‹ΡˆΠΊΠΎ Π² ΠΎΠΊΠ½Π΅.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ рисуСм 1000 красных Ρ‚ΠΎΡ‡Π΅ΠΊ Π² ΠΎΠΊΠ½Π΅.

ΠœΡ‹ устанавливаСм Ρ€ΡƒΡ‡ΠΊΡƒ красного Ρ†Π²Π΅Ρ‚Π°. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΡƒΡŽ константу Qt.red.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ мСняСм Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π°, вызываСтся paintEvent. ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° size(). ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΠΎ всСму ΠΎΠΊΠ½Ρƒ.

ΠœΡ‹ рисуСм Ρ‚ΠΎΡ‡ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° drawPoint().

Π¦Π²Π΅Ρ‚Π°

Π¦Π²Π΅Ρ‚ – это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ красного, Π·Π΅Π»Ρ‘Π½ΠΎΠ³ΠΎ ΠΈ синСго (RGB) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ интСнсивности. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ значСния RGB находятся Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 255. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами. Π‘Π°ΠΌΡ‹ΠΉ распространённый – дСсятичныС ΠΈΠ»ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ значСния RGB. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ значСния RGBA, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ красный, Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ, синий ΠΈ Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π». Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ добавляСм Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ прозрачности. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Π»ΡŒΡ„Π° 255 опрСдСляСт ΠΏΠΎΠ»Π½ΡƒΡŽ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, 0 – полная ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, Ρ‚.Π΅. Ρ†Π²Π΅Ρ‚ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌ.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ рисуСм 3 ΠΎΠΊΡ€Π°ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ опрСдСляСм Ρ†Π²Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΡƒΡŽ систСму счислСния.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ опрСдСляСм ΠΊΠΈΡΡ‚ΡŒ ΠΈ рисуСм ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ. ΠšΠΈΡΡ‚ΡŒ – это элСмСнтарный графичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΠ½ очСртания. ΠœΠ΅Ρ‚ΠΎΠ΄ drawRect() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° – значСния x ΠΈ y Π½Π° осях. Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΈ Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ – ΡˆΠΈΡ€ΠΈΠ½Π° ΠΈ высота ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. ΠœΠ΅Ρ‚ΠΎΠ΄ рисуСт ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Ρ€ΡƒΡ‡ΠΊΡƒ ΠΈ ΠΊΠΈΡΡ‚ΡŒ.

QPen (Ρ€ΡƒΡ‡ΠΊΠ°) – это элСмСнтарный графичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ, ΠΊΡ€ΠΈΠ²Ρ‹Π΅ ΠΈ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ², эллипсов, ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΈΠ³ΡƒΡ€.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ рисуСм ΡˆΠ΅ΡΡ‚ΡŒ Π»ΠΈΠ½ΠΈΠΉ. Π›ΠΈΠ½ΠΈΠΈ Ρ€ΠΈΡΡƒΡŽΡ‚ΡΡ Π² ΡˆΠ΅ΡΡ‚ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… стилях Ρ€ΡƒΡ‡ΠΊΠΈ. БущСствуСт ΠΏΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… стилСй QPen. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ стили. ПослСдняя линия нарисована с использованиСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ стиля.

ΠœΡ‹ создаём ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ QPen. Π¦Π²Π΅Ρ‚ – Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΉ. Π¨ΠΈΡ€ΠΈΠ½Π° устанавливаСтся Π² 2 пиксСля Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ различия ΠΌΠ΅ΠΆΠ΄Ρƒ стилями Ρ€ΡƒΡ‡ΠΊΠΈ. Qt.SolidLine – это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… стилСй (Тирная линия).

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ опрСдСляСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΡΡ‚ΠΈΠ»ΡŒ Ρ€ΡƒΡ‡ΠΊΠΈ. ΠœΡ‹ устанавливаСм ΡΡ‚ΠΈΠ»ΡŒ Ρ€ΡƒΡ‡ΠΊΠΈ Qt.CustomDashLine ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ setDashPattern(). Бписок чисСл опрСдСляСт ΡΡ‚ΠΈΠ»ΡŒ. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ нСсколько чисСл. НСчётныС числа ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΡΠΏΠ»ΠΎΡˆΠ½ΡƒΡŽ линию, Ρ‡Ρ‘Ρ‚Π½Ρ‹Π΅ числа – ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΈ. Π§Π΅ΠΌ большС число, Ρ‚Π΅ΠΌ большС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ ΠΈΠ»ΠΈ ΡˆΡ‚Ρ€ΠΈΡ…. Наш ΠΎΠ±Ρ€Π°Π·Π΅Ρ† – ΡˆΡ‚Ρ€ΠΈΡ… Π² 1 пиксСль, ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π² 4 пиксСля, ΡˆΡ‚Ρ€ΠΈΡ… Π² 5 пиксСлСй, ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π² 4 пиксСля, ΠΈ Ρ‚.Π΄.

Π’ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅.

QBrush

QBrush – это элСмСнтарный графичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для рисования Ρ„ΠΎΠ½Π° графичСских Ρ„ΠΎΡ€ΠΌ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ, эллипсы ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ. ΠšΠΈΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€Ρ‘Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²: прСдопрСдСлённая ΠΊΠΈΡΡ‚ΡŒ, Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚, ΠΎΠ±Ρ€Π°Π·Π΅Ρ† тСкстуры.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ рисуСм Π΄Π΅Π²ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ².

ΠœΡ‹ опрСдСляСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ кисти. ΠœΡ‹ устанавливаСм Π΅Π³ΠΎ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ рисования ΠΈ рисуСм ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° drawRect().

Π’ этой части руководства PyQt5, ΠΌΡ‹ рассмотрСли Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основы рисования.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Python ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Pillow

Π‘Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ Π·Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒ Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ ΠΈ видишь ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΡƒΡŽ ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΡƒ статСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅ΡˆΡŒ, Π½ΠΎ Ρ‚ΡƒΡ‚ Ρ‚Π°ΠΊ сошлись Π·Π²Π΅Π·Π΄Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π» ΡΡ‚Π°Ρ‚ΡŒΡŽ, ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π», ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π», Π³Π΄Π΅ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ пригодится. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ с Π₯Π°Π±Ρ€ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ссли ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π½ΡƒΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ простой ΠΈ понятный Π³Π°ΠΉΠ΄ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с изобраТСниями Π½Π° Python β€” поТалуйста.

Pillow β€” это свободно распространяСмая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с изобраТСниями (Π΄Π°Π»Π΅Π΅ Imaging Library) Π½Π° Python с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, которая добавляСт Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ открытия, измСнСния ΠΈ сохранСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΡ….

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ

Π‘Π°ΠΌΡ‹ΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ класс Π² Imaging Library Python β€” это класс Image, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ open(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² нашСй локальной Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

Π­Ρ‚ΠΎ просто! Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ изобраТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Pillow, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ изобраТСния с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ свойства изобраТСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ вывСсти Π½Π° экран ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ show

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ изобраТСния

Когда Π²Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Pillow Π² ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΡ… jpg ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ png ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Python для прСобразования всСх ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ jpg, Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ png.

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

ΠžΠ±Ρ€Π΅Π·ΠΊΠ° изобраТСния

Pillow Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΎΠ±Ρ€Π΅Π·ΠΊΠΈ изобраТСния, ΠΏΡ€ΠΈ этом Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ изобраТСния, ΡƒΠΊΠ°Π·Π°Π² ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

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

ΠŸΡ€ΠΈ этом ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ находятся (x, y) ΠΎΡ‚ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π»Π΅Π²ΠΎΠΉ диагональной Ρ‚ΠΎΡ‡ΠΊΠΈ, Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ (x2, y2) Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ диагональной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ снизу справа.

ГСомСтричСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Pillow ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ гСомСтричСскиС прСобразования Π½Π°Π΄ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ изобраТСния.

Π­Ρ‚ΠΈ знания ΠΈΠ³Ρ€Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ€ΠΎΠ»ΡŒ ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… для Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ обучСния ΠΏΡƒΡ‚Π΅ΠΌ прСобразования ΠΎΠ΄Π½ΠΎΠ³ΠΎ изобраТСния Π² Ρ‚ΠΎΠ½Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с Ρ€Π°Π·Π½Ρ‹Ρ… ракурсов.

ИзмСнСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° изобраТСния

Когда Π²Ρ‹ запуститС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π² вашСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 320 Π½Π° 320.

ΠŸΠΎΠ²ΠΎΡ€ΠΎΡ‚ изобраТСния

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ вращСния для создания 360 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ изобраТСния ΠΏΠΎΠ΄ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΡƒΠ³Π»Π°ΠΌΠΈ β€” это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для обучСния своСй ΠΌΠΎΠ΄Π΅Π»ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ обучСния.

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

ПослС запуска скрипта, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ 360 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ исходного изобраТСния с Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ β€” это ΠΌΠ΅Ρ‚ΠΎΠ΄ измСнСния ΠΈΠ»ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ изобраТСния. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ особСнности ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

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

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Pillow доступно мноТСство Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ BLUR, BoxBlur, CONTOUR, FIND_EDGES, Filter, GaussianBlur, Kernel, MaxFilter, MedianFilter, SHARPEN, SMOOTH ΠΈ Ρ‚.Π΄.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ края Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ FIND_EDGES.

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ Π² Python Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Pillow Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Π§Ρ‚Π΅Π½ΠΈΠ΅ изобраТСния ΠΈΠ· ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Pillow для чтСния изобраТСния ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Python, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅

Π§Ρ‚Π΅Π½ΠΈΠ΅ изобраТСния ΠΈΠ· URL

Π’ этом случаС Π²Π°ΠΌ придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Pillow Π² сочСтании с запросами. Запросы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ GET-request Π½Π° сСрвСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ изобраТСния, Π° ΡƒΠΆΠ΅ Pillow считаСт эти Π±Π°ΠΉΡ‚Ρ‹.

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Pillow Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ пустоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Image.new() для создания ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ изобраТСния.

Бинтаксис:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

РисованиС ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² Π½Π° изобраТСниях

Pillow Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для рисования ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π½Π° изобраТСниях. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это Π΄Π΅Π»Π°ΡŽΡ‚ ΠΏΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠŸΡ€ΠΈ этом Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ просто ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, Π° Ρ€Π°ΠΌΠΊΡƒ Π½Π°Π΄ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ исползования

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π°ΠΌΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ пустого изобраТСния.

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ (x, y) Π»Π΅Π²ΠΎΠΉ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части, Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π΅ (x2, y2) ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΏΡ€Π°Π²ΠΎΠΉ Π½ΠΈΠΆΠ½Π΅ΠΉ части.

РисованиС тСкста Π½Π° изобраТСниях

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Pillow для рисования тСкста Π½Π° изобраТСниях.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ПишСм Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Python с tkinter

Π’ Ρ€Π°Π±ΠΎΡ‚Π΅ со студСнтами ΠΈ ΡƒΡ‡Π΅Π½ΠΈΠΊΠ°ΠΌΠΈ я Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ языка программирования большой интСрСс Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π° с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ. Π”Π°ΠΆΠ΅ Ρ‚Π΅ студСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучали Π½Π° заданиях ΠΏΡ€ΠΎ числа Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ, ΠΈ ΡƒΠΆΠ΅ казалось Π±Ρ‹ Ρƒ Π½ΠΈΡ… ΠΏΡ€ΠΎΠΏΠ°Π΄Π°Π» интСрСс ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ языка, Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π½Π° Ρ‚Π΅ΠΌΠ°Ρ…, связанных с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΏΠΎΡ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² написании нСбольшой графичСской ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΊΠΈ Π½Π° Python с использованиСм tkinter (кроссплатформСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ графичСского интСрфСйса Π½Π° языкС Python).

Код Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ написан для Python 3.5.

Π—Π°Π΄Π°Π½ΠΈΠ΅: написаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для рисования Π½Π° холстС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΡ€ΡƒΠ³ΠΎΠ² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ†Π²Π΅Ρ‚ΠΎΠ².

НС слоТно, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° «дСтская», Π½ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ, для яркой ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ tkinter самоС ΠΎΠ½ΠΎ.

Π₯ΠΎΡ‡Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ сначала ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° способом. Для этого Π² tkinter Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΊΠ°ΠΊ сказано Π² комСнтариях Π½ΠΈΠΆΠ΅ β€” Π·Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠ° Π½Π΅ всС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Π½Π°Π΄Ρ‘ΠΆΠ½Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ
from tkinter import colorchooser

МоТно для опрСдСлСния Ρ†Π²Π΅Ρ‚Π° рисования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ английскиС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ². Π—Π΄Π΅ΡΡŒ Ρ…ΠΎΡ‡Ρƒ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ всС ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π’ΡƒΡ‚ говорится, Ρ‡Ρ‚ΠΎ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚Π° Β«whiteΒ», Β«blackΒ», Β«redΒ», Β«greenΒ», Β«blueΒ», Β«cyanΒ», Β«yellowΒ», Β«magentaΒ». Но я всС Ρ‚Π°ΠΊΠΈ поэкспСримСнтировала, ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ дальшС, Ρ‡Ρ‚ΠΎ ΠΈΠ· этого Π²Ρ‹ΡˆΠ»ΠΎ.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π² Python Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ холст. Для рисования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ систСма ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ… ΠΈ Ρƒ, Π³Π΄Π΅ Ρ‚ΠΎΡ‡ΠΊΠ° (0, 0) находится Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ Ρ…Π²Π°Ρ‚ΠΈΡ‚ вступлСний β€” Π½Π°Ρ‡Π½Π΅ΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π“Ρ€Π°Ρ„ΠΈΠΊΠ° Π² Python: Tkinter ΠΈ Canvas

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассматриваСтся созданиС графичСских интСрфСйсов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Tkinter. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρƒ Canvas, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΌΡƒ для рисования (draw) Π² Python.

Tkinter прСдставляСт собой Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΊΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½Π° основС срСдств Tk. Π­Ρ‚ΠΎ свободноС ПО, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ языка программирования Python.

Π’ состав Tkinter Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Один ΠΈΠ· Π½ΠΈΡ… β€” Canvas, ΠΎΠ½ ΠΆΠ΅ Β«Π₯олст». Canvas примСняСтся Π² Python для Π²Ρ‹Π²ΠΎΠ΄Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… графичСских ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ²:

Но ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ, слСдуСт Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… позиционирования элСмСнтов.

ΠŸΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ элСмСнтов Π² Python. Python grid

Для позиционирования элСмСнтов, Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Tkinter ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

ΠœΠ΅Ρ‚ΠΎΠ΄ grid позволяСт ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнт Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ячСйку условной сСтки Π»ΠΈΠ±ΠΎ Π³Ρ€ΠΈΠ΄Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ряд ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Tkinter Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ сначала Π½Π°Π΄ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:

from tkinter import *

НиТС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π³Ρ€ΠΈΠ΄ ΠΈΠ· дСвяти ΠΊΠ½ΠΎΠΏΠΎΠΊ:

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

Canvas: рисуСм Π»ΠΈΠ½ΠΈΠΈ Π² Python

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚ Canvas прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ (drawn) Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ Π² Tkinter. Для Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ эта Π³Ρ€Π°Ρ„ΠΈΠΊΠ°? К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, для получСния статистики, создания своих Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², отрисовки Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈΠ³Ρ€.

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

Когда Ρ€ΠΈΡΡƒΠ΅ΡˆΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ линию, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² качСствС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ нСсколько ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ. ΠšΡƒΡΠΎΡ‡Π΅ΠΊ ΠΊΠΎΠ΄Π° Π½ΠΈΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° отрисовку Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° β€” ΠΎΠ½ вСдь Ρ‚ΠΎΠΆΠ΅ состоит ΠΈΠ· простых Π»ΠΈΠ½ΠΈΠΉ.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ вСсь ΠΊΠΎΠ΄ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

Canvas: рисуСм Ρ†Π²Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ Π² Python

Π¦Π²Π΅Ρ‚ β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Ρ‚Ρ€Π΅Ρ… Ρ†Π²Π΅Ρ‚ΠΎΠ² (красного, Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ, синСго β€” RGB). Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π° Π½ΠΈΠΆΠ΅ Π±Ρ‹Π»ΠΈ нарисованы ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ.

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

Π’Π°ΠΊ создаСтся Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Canvas:

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

β€” ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π»Π΅Π²ΠΎΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ (Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π°);

β€” ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ (Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π°).

Если Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ, Ρ‚ΠΎ посрСдством ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° outline Ρƒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° задаСтся Ρ†Π²Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π°. ΠžΠΊΡ€Π°ΡΠΈΡ‚ΡŒ всю Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° fill :

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

А Π²ΠΎΡ‚ ΠΈ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

РисуСм слоТныС Ρ„ΠΎΡ€ΠΌΡ‹

МоТно Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³, ΠΎΠ²Π°Π» ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΡ€ΠΈΠ²ΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅. ИмСнно для этой Ρ†Π΅Π»ΠΈ ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅:

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

Благодаря этому ΠΊΠΎΠ΄Ρƒ Π±ΡƒΠ΄ΡƒΡ‚ созданы Ρ‚Π°ΠΊΠΈΠ΅ гСомСтричСскиС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, ΠΊΠ°ΠΊ ΠΊΡ€ΡƒΠ³, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΎΠ²Π°Π», Π΄ΡƒΠ³Π°, ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ. Π’Π°ΠΊΠΆΠ΅ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½Ρ‚ΡƒΡ€ β€” ΠΎΠ½ окрасится Π² красный Ρ†Π²Π΅Ρ‚, Π° Π·Π°Π»ΠΈΠ²ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π΅Π»Π΅Π½ΠΎΠΉ. Π¨ΠΈΡ€ΠΈΠ½Π° ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π° (width) β€” 2 px.

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

Аналогично создаСтся ΠΈ ΠΎΠ²Π°Π» β€” ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ лишь ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 4 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

Π’Π°ΠΊΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Canvas ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ изобраТСния ΠΈ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ тСкст (text), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ Ρ€Π°Π·Π½ΠΎΠΉ высоты (height) ΠΈ стиля (style).

Π”Ρ€ΡƒΠ³ΠΈΠ΅ GUI-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Python

ΠšΡ€ΠΎΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Tkinter ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Canvas, сущСствуСт ΠΈ масса Π΄Ρ€ΡƒΠ³ΠΈΡ… графичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, примСняСмых для создания рисунков (drawings). Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ…:

ΠŸΡ€ΠΈ рисовании ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ примСняСтся каскадный способ: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°.

Drawing with Turtle

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ упоминания заслуТиваСт ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Turtle (ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Ρ‡Π΅Ρ€Π΅ΠΏΠ°ΡˆΠΊΠ°ΠΌΠΈ Turtles). Π­Ρ‚ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅ рисунки ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ графичСскиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΠ³Ρ€Ρ‹ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€ΠΈΡΠΎΠ²Π°Π½ΠΈΡŽ (drawing), Π½Π°Π΄ΠΎ сначала ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ (ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ). ДСлаСтся это ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· 3-Ρ… способов:

2) from turtle import open as t ;

Drawing with Pygame

Pygame β€” Π½Π°Π±ΠΎΡ€ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ 2D-ΠΈΠ³Ρ€Ρƒ. Π’Π°ΠΊΠΆΠ΅ Pygame Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ/Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹, Ρ‚Π°ΠΊ ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Π΅ прилоТСния.

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

Pygame ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ с Tkinter, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ своих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов прСдоставляСт языку программирования Python доступ ΠΊ графичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Tk.

Если Π½ΡƒΠΆΠ½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅, смотритС источники Π½ΠΈΠΆΠ΅:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

РисуСм гСомСтричСскиС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π² Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Pillow

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ImageDraw ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Pillow (PIL) прСдоставляСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для рисования ΠΊΡ€ΡƒΠ³Π°, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π° ΠΈ прямой Π»ΠΈΠ½ΠΈΠΈ Π² Python.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Draw Π² Python

Π—Π΄Π΅ΡΡŒ создаСтся пустоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 500 Π½Π° 300 пиксСлСй ΠΈ с Ρ‚Ρ‘ΠΌΠ½ΠΎ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΌ Ρ„ΠΎΠ½ΠΎΠΌ.

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

РисуСм Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π² Pillow: ellipse, rectangle ΠΈ line

Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ рисования ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Draw для рисования Ρ„ΠΈΠ³ΡƒΡ€ Π½Π° нашСм ΠΆΠ΅Π»Ρ‚ΠΎΠΌ Ρ„ΠΎΠ½Π΅.

РисуСм эллипс, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΈ ΠΏΡ€ΡΠΌΡƒΡŽ линию Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄. Π€ΠΎΡ‚ΠΎ рисунок Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΊΠΎΠ΄

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΏΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² рисования

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

ΠžΠ±Π»Π°ΡΡ‚ΡŒ рисования β€” xy

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ xy ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ для рисования Π½ΠΎΠ²ΠΎΠΉ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹.

УточняСтся ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²:

ΠœΠ΅Ρ‚ΠΎΠ΄ line() рисуСт ΠΏΡ€ΡΠΌΡƒΡŽ линию, которая связываСт ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ, polygon() рисуСт ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ point() рисуСт Ρ‚ΠΎΡ‡ΠΊΡƒ Π² 1 пиксСль для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ fill β€” заполняСм Ρ„ΠΈΠ³ΡƒΡ€Ρƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ fill ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ Ρ†Π²Π΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ использован для заполнСния нашСй гСомСтричСской Ρ„ΠΎΡ€ΠΌΡ‹.

БпСцификация Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Ρ†Π²Π΅Ρ‚Π° отличаСтся Π² зависимости ΠΎΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° изобраТСния (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Image ):

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ None (Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ).

Π•ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ способа ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚, возьмСм красный Ρ†Π²Π΅Ρ‚, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π‘Ρ‚ΠΎΠΈΡ‚ ΡƒΡ‡Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ тСкстовый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ всС Ρ†Π²Π΅Ρ‚Π°, ΠΊΠΎΠ»-Π²ΠΎ доступных Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ Π² ΠΊΠΎΠ΄Π΅ самой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’ΠΎΡ‚ вСсь список: https://github.com/python-pillow/Pillow/blob/8.1.0/src/PIL/ImageColor.py#L148

Π›ΡƒΡ‡ΡˆΠ΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ #FFFFFF (Π±Π΅Π»Ρ‹ΠΉ).

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ outline β€” Ρ†Π²Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ†

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ outline ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ†Π²Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹.

БпСцификация Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Ρ†Π²Π΅Ρ‚Π° такая ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° fill ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ обсуТдали Π²Ρ‹ΡˆΠ΅. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π²Π½ΠΎ None (Π±Π΅Π· Π³Ρ€Π°Π½ΠΈΡ†).

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ width β€” Ρ€Π°Π·ΠΌΠ΅Ρ€ Π³Ρ€Π°Π½ΠΈΡ†

Π’Π½Π΅ зависимости ΠΎΡ‚ рисуСмой Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² пиксСлях для Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹.

РисованиС эллипса ΠΈ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π² Python

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *