Cтраница 3
Для рисования предназначены инструменты второй группы, объединяющие средства создания фигур, линий и текста. Инструмент Реп ( Перо) и его альтернативные варианты используют для рисования кривых и редактирования их точек. Назначение инструмента Text ( Текст) понятно из его названия. Альтернативные варианты инструмента позволяют разместить текст в окне ( текстовом блоке), по вертикали, под наклоном и вдоль кривой. [31]
Для рисования внутри окна функция OnMouseMove создает объект контекста устройства, связанный с окном представления. Объекты контекста устройства описаны в гл. Объект класса cciientDC позволяет рисовать внутри окна представления с помощью функции, отличающейся от OnDraw. Затем OnMouseMove вызывает функцию CDC: : SetROP2, задающую режим рисования, в котором линии строятся методом инвертирования ( обращения) текущего цвета экрана. В этом режиме линия, нарисованная в определенной позиции в первый раз, будет видима, а при повторном выводе в той же самой позиции - невидима. Таким образом, обработчики сообщения легко отображают и удаляют группы временных линий. Линии выводятся с помощью CDC: : MoveTo, указывающей положение одного конца линии, и CDC: : LineTo, задающей положение другого конца. Объекты контекста устройства описаны в гл. [32]
Для рисования требуется весьма несложный и недорогой набор принадлежностей и материалов, а именно: мягкий карандаш № 2 или № 1, мягкая резинка ( не чернильная), рисовальная бумага и небольшая, примерно 300X500 мм, рисовальная доска. [33]
Поскольку рисование на экране, по сути, является действием с битами, при прорисовке точек производятся логические операции между битами памяти монитора и битами изображения. Для описываемой процедуры разрешены только первые две операции: первая - замещение ( очистка перед прорисовкой) и вторая ( очень интересная) - XOR. [34]
Для рисования на форме используется специальное свойство Canvas. Объект TCanvas имеет две отличительные особенности: он включает коллекцию инструментов рисования ( типа пера, кисти и шрифта) и обеспечивает несколько методов рисования, использующих текущие инструменты. Код рисования в этом примере неправилен, потому что изображение на экране непостоянно; перемещение другого окна на текущее очистит его вывод. [35]
Кроме рисования углов с натуры, их также можно изобразить при помощи прямого угла ( фиг. Для этого рисуют прямой угол и произвольным радиусом дугу окружности. [36]
Для рисования нужно использовать модели геометрических тел. Причем следует выбирать такое положение модели, при котором изображение получается наиболее наглядным и похожим на аксонометрическую проекцию этого предмета. [37]
Для рисования рамок и линий используются позиции Box и Line меню Layout. Их применение описано в разделе разработки экранных форм. [38]
Зачастую рисования объектов в масштабе недостаточно для того, чтобы передать точные размеры. [39]
Для рисования линий выбирается карандаш, поднимается вверх командой PU, перемещается в начало линии, опускается вниз командой PD и рисуется линия. Некоторые команды автоматически устанавливают карандаш в верхнее или нижнее положение. [40]
Для рисования текста сначала определяется шрифт по следующим характеристикам: размер, тип шрифта, цвет и прочие атрибуты. Затем отдельным вызовом, которому соответствуют позиция, строка и некоторые опции форматирования, отображается текст. [41]
![]() |
Строка параметров объекта при вводе точки. [42] |
Для рисования точки служит команда Точка, которая позволяет нарисовать одну или несколько точек. [43]
Для рисования квадрата надо выбрать высоту прямоугольника так, чтобы она равнялась произведению ширины на коэффициент сжатия изображения ( см. разд. [44]
Для рисования сегментов этой ломаной используется модифицированный алгоритм Брезенхейма, который перед выводом очередного пиксела сравнивает его ординату с верхней и нижней контурными линиями. [45]