Как работает Graphics - C#
Формулировка задачи:
Заранее прошу простить мою тупость и сильно не ругать (не сильно - можно).
Это мой первый опыт работы с графикой, и я никак не могу до конца понять, как графикс работает. Разъясните, пожалуйста, в образном формате.
Если , представить, что программист - это художник, то правильно ли я представляю процесс создания и отображения применительно к c#.net:
Graphics g; - это художник приобретает краски и кисточки (g).
Приложение - это картинная галерея.
g = new Graphics.FromHwnd(this.Handle); - это художник приходит в галерею и заключает контракт, что он будет рисовать красками и кисточками g на холсте (форме приложения). Холст висит в рамке на стене галереи.
Либо
Bitmap bmp = new Bitmap(500, 500); - приобретает себе чистый холст
и
g = new Graphics.FromImage(bmp); - рисует своими красками и кисточками g на этом холсте bmp в своей мастерской,
а потом
this.BackgroundImage = bmp; - относит готовую картину в галерею и вешает ее в рамку на стене.
Также
Image img = new Image.FromFile(filename); - он может взять нарисованную картину
и
g = new Graphics.FromImage(img); - дорисовывать ее.
Если все так, то где художнику лучше рисовать: в своей мастерской Graphics.FromImage(bmp) или сразу в галерее Graphics.FromHwnd(this.Handle)? Т.е. как эти варианты влияют работу приложения: может, например, если художник часто перерисовывает картину, то при рисовании на собственном холсте много времени будет уходить на беготню от мастерской до галереи. Или еще как?
Еще, когда художник рисует сразу в галерее Graphics.FromHwnd(this.Handle), краски не высыхают до конца. И бывает, что в галерее места мало, и одна кртина (окно) накладывается на другую и затирает невысохшие краски. Поэтому, когда верхняя картина убирается, художник должен восстановить нижнюю картину (поэтому все вышеперечисленные процедуры рисования должны находиться в событии OnPaint).
А когда он приносит из своей мастерской готовый холст g = new Graphics.FromImage(bmp); this.BackgroundImage = bmp; - краски успевают высохнуть и ничем не стираются.
Или готовый холст, принесенный в галерею, тоже перерисовывается, только автоматически самой галереей?
Насколько верно вышесказанное? Поправьте, если что не так. Если не влом...
Какие еще моменты нужно понять, чтобы правильно применить graphics в проекте?
Решение задачи: «Как работает Graphics»
textual
Листинг программы
this.DoubleBuffered = true;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д