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

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Paint для пСрСрисовки клиСнтской области

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

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· событиС Paint Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΡ‹. Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° пСрСдаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° PaintEventArgs. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ содСрТит ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ испорчСнной области Ρ„ΠΎΡ€ΠΌΡ‹ ClipRectangle ΠΈ ΡΡΡ‹Π»ΠΊΡƒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Graphics, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ рисованиС. НапримСр, Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события Paint, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎΡΡ пСрСрисовкой, этот объСкг ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Paint для пСрСрисовки клиСнтской области (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Paint Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° клиСнтская ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ происходило рисованиС, портится. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ этого ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ свСрнул Ρ„ΠΎΡ€ΠΌΡƒ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹, ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ, Π±Ρ‹Π» Π²Ρ‹Π·Π²Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΡ‹ lnvalidate () — Π²ΠΎ Π²ΡΠ΅Ρ… этих случаях трСбуСтся ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ. Π—Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° события Paint являСтся пСрСрисовка клиСнтской области Ρ„ΠΎΡ€ΠΌΡ‹. Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности ΠΌΠΎΠΆΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ рисованиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π΅Π΅ ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ….

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· событиС Paint Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΡ‹. Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° пСрСдаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° PaintEventArgs. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ содСрТит ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ испорчСнной области Ρ„ΠΎΡ€ΠΌΡ‹ ClipRectangle ΠΈ ΡΡΡ‹Π»ΠΊΡƒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Graphics, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ рисованиС. НапримСр, Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события Paint, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎΡΡ пСрСрисовкой, этот объСкг ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

void Form1_Paint (object sender, PaintEventArgs e){.

Graphics gfx = e. Graphics:

//пСрСрисовка, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° gfx.

}.

БистСмы ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚

Π’ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ задаСтся стандартная систСма ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, показанная Π½Π° Ρ€ΠΈΡ. 8.15.

БистСма ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ элСмСнты.

Рис. 8.15. БистСма ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ элСмСнты.

Однако Π² ΠΊΠ»Π°ΡΡΠ΅ Graphics имССтся Π½Π°Π±ΠΎΡ€ свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для измСнСния Ρ‚Π°ΠΊΠΎΠΉ систСмы ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ области рисования. МоТно Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ основныС свойства:

  • β€’ свойство PageUnit для задания Π΅Π΄ΠΈΠ½ΠΈΡ† измСрСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ основныС значСния пСрСчислСния GraphicsUnit, ΠΊΠ°ΠΊ Pixel (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), Millimeter, Point (1/72 дюйма), Inch (дюйм — 2.54 см);
  • β€’ свойство Transform для задания ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ трансформации ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, которая описываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса Matrix; рассмотрСниС Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π΄Π°Π½Π½ΠΎΠ³ΠΎ пособия, Π½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ систСму ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ с Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (Ρ…, Ρƒ) ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Graphics gfx = CreateGraphics ();

gfx.Transform = new Matrix (1, 0, 0, -1, x, y);

К ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ измСнСния систСмы ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ отнСсти:

  • β€’ пСрСнос Π½Π°Ρ‡Π°Π»Π° систСмы ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π² Ρ‚ΠΎΡ‡ΠΊΡƒ (Ρ…, Ρƒ) TranslateTransform (x, Ρƒ);
  • β€’ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ систСмы ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° Ρ… Π³Ρ€Π°Π΄ΡƒΡΠΎΠ² ΠΏΠΎ Ρ‡Π°ΡΠΎΠ²ΠΎΠΉ стрСлкС RotateTransform (x);
  • β€’ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΡΠΈ Ρ… ΠΈ ΠΎΡΠΈ Ρƒ — ScaleTransform (x, Ρƒ);
ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ