ΡΠΈΡΡΠ½ΠΎΠΊ Π² ΠΏΠΈΡΠΎΠ½Π΅ ΠΊΠΎΠ΄
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² 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 β ΡΠ°Π·ΠΌΠ΅Ρ Π³ΡΠ°Π½ΠΈΡ
ΠΠ½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠΈΠ³ΡΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ Π΄Π»Ρ Π³ΡΠ°Π½ΠΈΡΡ ΡΠΈΠ³ΡΡΡ.