ПОНЯТНО О Visual Basic NET (том 3)



Как улучшить наш графический редактор


Давайте сравним наш простейший графический редактор с настоящим графическим редактором средней руки, а именно с Paint, который входит в состав Windows. Откройте его (Рис. 20.20).

Рис. 20.20

Давайте посмотрим, что нам нужно добавить к нашему графическому редактору, чтобы он в основном мог делать то, что делает Paint (пусть и не так элегантно), и определим, умеем ли мы это запрограммировать и трудно ли это программировать:

Что мы видим в Paint?

Умеем?

Трудно?

Лист с редактируемой картинкой. Это может быть PictureBox.

Да

Легко

Меню (внешний вид)

Да

Легко

Панель инструментов слева (внешний вид)

Да

Легко

Панель выбора формы кисти

слева (внешний вид). Это тоже обычная панель инструментов из 12 кнопок, только границы кнопок не видны (мы это делали).

Да

Легко

Панель выбора формы кисти

(работа). Мы уже рисовали круглой кистью, не правда ли? Ведь линия состояла из кружочков. А можно рисовать и квадратиками, и отрезками. Но здесь вам встретятся геометрические проблемы получения плавной линии из таких «угловатых» элементов.

Да

Трудно

Палитра цветов внизу. При небольшом числе цветов ее можно в простейшем случае запрограммировать, как коллекцию разноцветных кнопок на панели (Panel)

Да

Нетрудно

Полосы прокрутки. Придется применять событие Paint

Да

Нетрудно

Теперь поговорим об инструментах на панели инструментов Paint:

Карандаш, кисть. Это мы уже делали.

Да

Легко

Ластик. Это просто белая кисть

Да

Легко

Отрезок прямой, прямоугольник, овал. Они определяются прямоугольником, одна вершина которого лежит в точке, где вы нажали клавишу мышки, а противоположная – в точке, где отпустили. Потруднее сделать так, чтобы когда вы тащите мышь, за ней, как положено, тянулся пунктирный отрезок, прямоугольник или овал.

Ломаная строится по тому же принципу.

Да

Нетрудно

Прямоугольник с закругленными углами. Это 4 отрезка и 4 дуги.

Да

Долго

Плавная кривая.

Нет

Нелегко

Пипетка. Она берет пробу краски на листе, чтобы покрасить в эту краску кисть и карандаш. Для этого подойдет функция GetPixel.

Да

Легко

Интересно сделать пульверизатор

(распылитель). Здесь вам понадобятся случайные величины, ведь он распыляет маленькие кружочки в случайных местах.

Да

Средне

Текст. Здесь вам поможет метод DrawString.

Да

Средне

Заливка. Здесь вам помогут хорошее знание математики и метод SetPixel.

Да

Трудно

Увеличение (лупа). Здесь придется менять разрешение объектов Bitmap.

Да

Трудно

Выделение, копирование, перемещение фрагментов.

Да

Нелегко

<


Содержание  Назад  Вперед