Графические возможности Delphi
проект по информатике и икт по теме
«Графические возможности Delphi» как средство создания анимированных задач и графического редактора (проект).
Составили: Омелькова А., Дайнова С., студентки 201 группы специальности 050202 «Информатика»
Скачать:
Вложение | Размер |
---|---|
proekt.doc | 476.5 КБ |
Предварительный просмотр:
Министерство общего и профессионального образования Свердловской области
ГОУ СПО «Красноуфимский педагогический колледж»
«Графические возможности Delphi» как средство создания анимированных задач и графического редактора
(проект).
Красноуфимск 2011г
Проект «Графические возможности Delphi» как средство создания анимированных задач и графического редактора.
\ Красноуфимский педагогический колледж. Красноуфимск, 2011. 36 стр.\
Проект содержит в себе 2 главы, а также теоретические основы по графическим возможностям Delphi и описание учебного раздела «Графическая информация и компьютер», приложение, в котором находятся окно графического редактора, графические задачи, составленные в Delphi. Задачи можно использовать при планировании и организации как учебной так и внеучебной деятельности школьника (кружки, факультативы, элективные курсы). Данный проект способствует углубленному изучению графики в Delphi. Он может быть полезен как студентам, учителям, так и учащимся основной общеобразовательной школы, а также людям, которые желают повысить уровень своих знаний и умений в области программирования.
Составили: Омелькова А., Дайнова С., студентки 201 группы специальности
050202 «Информатика»
Руководители: Анашкина Т.С., Игошев А.Д.
Содержание
Глава I. Обработка графической информации.
1.1. Раздел «Графическая информация и компьютер».
Глава II. СИСТЕМА ПРОГРАММИРОВАНИЯ DELPHI
2.1Структура системы
Введение
Для представления графической информации в наглядном виде используют графический редактор. Компьютер позволяет представлять их в электронной форме, а это дает возможность не только отображать, но и обрабатывать данные. Программы, используемые для этой цели, называются графическими редакторами.
Особенность графических редакторов заключается в возможности редактирования и создания изображений. Одна из задач при создании проекта - показать, что графический редактор может быть не только в стандартном виде, но и спрограммированный самими учениками основной школы.
В данной работе рассматриваются различные функции и процедуры, предназначенные для изображения графических объектов в среде программирования Delphi. Delphi — это среда быстрой разработки, в которой в качестве языка программирования используется язык Pascal. Язык Delphi — строго типизированный объектно-ориентированный язык, в основе которого лежит Pascal. Delphi является наиболее удобной средой для программирования.
Удобство Delphi состоит в том, что, каждый компонент имеет впечатляющий набор событий, на которые он может реагировать. Работающий в среде сам определяет, какие события в программе требуется обрабатывать.
Delphi - прекрасная система визуального объектно-ориентированного проектирования, одинаково радующая и новичков в программировании, и профессионалов
Это среда разработки, используемой, прежде всего для создания и поддержки приложений, предназначенных как для отдельных персональных компьютеров, так и для серверов. Delphi, как и разработанные с ее помощью приложения, могут функционировать под практически любой 32 разрядной операционной системой типа Windows. Это довольно легкая в изучении среда, и в то же время довольно сложная. Изучить ее полностью и досконально – невозможно.
С помощью выполнения практических заданий в проекте мы постараемся показать основные графические возможности данной среды программирования. Ведь легче всего запоминается то, с чем сталкиваешься непосредственно.
Delphi имеет пользовательский графический интерфейс, подобный Visual Basic и C++. Человек, ранее работавший в подобной среде, не будет чувствовать себя не в своей тарелке. На данный момент множество фирм приняло за стандарт данный интерфейс для собственных приложений. Хорошим стимулом к получению знаний по данному предмету является знание хоть какого-нибудь языка программирования, или принципов написания программы. Идеально – знание языка программирования Pascal. Ведь весь исходный текст программы на Delphi пишется на языке Pascal, практически ничем не отличающимся от принципов, заложенных в такой знаменитой программной оболочке. Синтаксис, принцип модуля, процедуры, функции, все взято за основу.
Основной целью данной работы является разработка примитивного графического редактора в среде программирования Delphi.
Задачи проекта:
- Рассмотреть раздел в базовом курсе информатики «графическая информация и компьютер»;
- Проанализировать процесс обработки информации;
- Познакомится с системой программирования Delphi;
- На примере графики Delphi разработать анимационные задачи и графический редактор.
Глава I. Обработка графической информации.
- Раздел «Графическая информация и компьютер».
Изучение темы в базовом курсе информатики включает в себя.
Основные цели:
- Познакомить учащихся с назначением и областями применения компьютерной графики.
- Дать представление об устройстве и функционировании видеосистемы компьютера.
- Раскрыть способы кодирования графического изображения.
- Обучить основным приемам работы с графическим редактором.
Место данной темы в школьном курсе информатики.
Данный раздел базового курса относится к современной области компьютерных информационных технологий — технологии работы с графической информацией. Теоретическим содержанием раздела являются принципы представления изображения в компьютере. Ученики подробно знакомятся с растровым представлением изображения и получают первоначальные сведения о векторном представлении. Практическая часть раздела связана с получением навыков работы в среде графического редактора, с аппаратными средствами компьютерной графики.
Изучаемые вопросы:
Области применения компьютерной графики.
Аппаратные компоненты видеосистемы компьютера.
Кодирование изображения.
Графические редакторы.
Практическая работа с графическим редактором.
Знания, полученные при изучении темы «Графическая информация и компьютер», учащиеся могут использовать при создании графической продукции, для визуализации научных и прикладных исследований в различных областях знаний - физике, химии, биологии и др., а так же понять как представляется информация в компьютере. Созданное изображение может быть использовано в докладе, статье, мультимедиапрезентации. Знания и умения, приобретенные в результате освоения темы «Графическая информация и компьютер», являются фундаментом для дальнейшего изучения информатики в области трехмерного моделирования, анимации, видеомонтажа, создания систем виртуальной реальности.
Одним из изучаемых вопросов в разделе «графическая информация и компьютер» является графические редакторы, а также практическая работа с графическим редактором. Ученику следует знать, как происходит процесс передачи и обработки графической информации.
Процесс обработки информации
Изучаемые вопросы:
♦ Общая схема процесса обработки информации.
♦ Постановка задачи обработки.
♦ Исполнитель обработки.
♦ Алгоритм обработки.
♦ Типовые задачи обработки информации.
Любой вариант процесса обработки информации происходит по следующей схеме (рис.1):
Рис.1. Общая схема процесса обработки информации
Ученики должны уметь приводить примеры ситуаций, связанных с обработкой информации. Такие ситуации можно разделить на два типа.
Первый тип обработки: обработка, связанная с получением новой информации, нового содержания знаний.
К первому же типу обработки информации относится решение различных задач путем применения логических рассуждений. Например, следователь по некоторому набору улик находит преступника; человек, анализируя сложившиеся обстоятельства, принимает решение о своих дальнейших действиях; ученый разгадывает тайну древних рукописей и т. п.
Второй тип обработки: обработка, связанная с изменением формы, но не изменяющая содержания.
К этому типу обработки информации относится, например, перевод текста с одного языка на другой. Изменяется форматно должно сохраниться содержание. Важным видом обработки для информатики является кодирование. Кодирование — это преобразование информации в символьную форму, удобную для ее хранения, передачи, обработки.
Графическую информацию можно представлять в двух формах: аналоговой или дискретной. Живописное полотно, цвет которого изменяется непрерывно - это пример аналогового представления, а изображение, напечатанное при помощи струйного принтера и состоящее из отдельных точек разного цвета - это дискретное представление. Путем разбиения графического изображения (дискретизации) происходит преобразование графической информации из аналоговой формы в дискретную. При этом производится кодирование - присвоение каждому элементу конкретного значения в форме кода. При кодировании изображения происходит его пространственная дискретизация. Ее можно сравнить с построением изображения из большого количества маленьких цветных фрагментов (метод мозаики). Все изображение разбивается на отдельные точки, каждому элементу ставится в соответствие код его цвета. Чем большее количество цветов используется, тем больше информации несет каждая точка, а, значит, увеличивается качество кодирования. Создание и хранение графических объектов возможно в нескольких видах - в виде векторного, фрактального или растрового изображения. Отдельным предметом считается 3D (трехмерная) графика, в которой сочетаются векторный и растровый способы формирования изображений. Она изучает методы и приемы построения объемных моделей объектов в виртуальном пространстве. Для каждого вида используется свой способ кодирования графической информации.
Кодирование активно используется в технических средствах работы с информацией (телеграф, радио, компьютеры), а так же кодирование существует в графических изображениях и графических редакторах.
Графический редактор, как правило, имеет следующие основные режимы работы: режим выбора и настройки инструмента, режим выбора цвета, режим работы с рисунком (рисование и редактирование), режим работы с внешними устройствами.
Работая с графическим редактором, пользователь применяет не только клавиатуру, но и (для большинства современных компьютеров и редакторов) манипулятор мышь. Создавая изображения на экране компьютера, можно не только рисовать их самому, но и использовать другие изображения, например фотографии, рисунки из книг и т. д.
А как детям будет интересно создать собственный графический редактор и впоследствии осуществлять работу в нем. Возможно предложить на уроке выполнить свой графический редактор. А при дополнительных заданиях или кружковой работе ученики уже начнут работу над личным продуктом. При написании программы аналога графического редактора следует на практике показать, что при программировании происходит кодирование различных символов и букв в одно целое. Подобные операции и происходят при кодировании графического изображения.
Программирование в настоящее время – это творчески – направленный процесс. В современном обществе необходимо учитывать потребности и возможности человека в тои или иной сфере его деятельности.
Для развития каких – либо способностей благоприятен именно школьный возраст, в котором закладывается база знаний, необходимых нам на протяжении всей жизни.
Цель учителя – заинтересовать в создании данного графического редактора, который будет выполнен в среде программирования Delphi. Таким образом, происходит знакомство с программной средой и изучение графического редактора на практике. ( См. приложение 1).
Глава II. СИСТЕМА ПРОГРАММИРОВАНИЯ DELPHI
2.1Структура системы
Главные составные части (окна) среды программирования Delphi:
- Дизайнер Форм (Form Designer) или просто – «форма»;
- Окно Редактора Исходного Текста (Editor Window);
- Палитра Компонент (Component Palette);
- Инспектор Объектов (Object Inspector).
Есть, конечно, и другие важные составляющие Delphi, вроде линейки инструментов, системного меню и многие другие, нужные Вам для точной настройки программы и среды программирования.
Программисты на Delphi проводят большинство времени переключаясь между Дизайнером Форм и Окном Редактора Исходного Текста (которое для краткости называют Редактор). Дизайнер Форм (или просто – Форма) показан на рис. 1, окно Редактора - на рис. 2.
Дизайнер Форм в Delphi столь интуитивно понятен и прост в использовании, что создание визуального интерфейса превращается в детскую игру. Он первоначально состоит из одного пустого окна (формы), которое Вы заполняете разными объектами, выбранными на Палитре Компонент.
Рис. 1. Дизайнер Форм (форма)
Рис. 2. Редактор программного кода
Палитра Компонент (см. рис. 3) позволяет Вам выбрать нужные объекты – компоненты для размещения их на форме. Для использования Палитры Компонент просто первый раз щелкните мышкой на одном из объектов и потом второй раз - на форме. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать с помощью мыши.
Рис. 3. Палитра Компонент - место, где Вы выбираете объекты, которые будут помещены на вашу форму (в разных версиях Delphi)
Палитра Компонент использует постраничную группировку объектов. Вверху Палитры находится набор закладок - Standard, Additional, Dialogs и т.д. Если Вы щелкнете мышью на одной из закладок, то Вы можете перейти на следующую страницу Палитры Компонент.
Предположим, Вы помещаете компонент Edit на форму; Вы можете двигать его с места на место. Вы также можете использовать границу, прорисованную вокруг объекта для изменения его размеров. Большинством других компонент можно манипулировать тем же образом. Однако, невидимые во время выполнения программы компоненты (например, Menu) не меняют своей формы.
Слева от Дизайнера Форм Вы можете видеть Инспектор Объектов (рис. 4). Заметьте, что информация в Инспекторе Объектов меняется в зависимости от объекта, выбранного на форме. Инспектор Объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения данного компонента. Первая страница - это список свойств (Properties), вторая - список событий (Events).
Рис. 4. Инспектор
Объектов позволяет
определять свойства
и поведение объектов
Если нужно изменить что-нибудь, связанное с определенным компонентом, то Вы обычно делаете это в Инспекторе Объектов. Важно понять, что каждый компонент является настоящим объектом, и Вы можете с помощью Инспектора Объектов менять его свойства (Properties), в частности, внешний вид, а также реакции на события (Events), такие, например, как щелчок мыши или нажатие клавиши. К примеру, Вы можете изменить имя и размер компонента Button, изменяя свойства Caption, Left, Top, Height, и Width.
Вы можете использовать закладки вверху Инспектора Объектов для переключения между страницами свойств и событий. Страница событий связана с Редактором, - если Вы дважды щелкнете мышкой на правую сторону какого-нибудь пункта, то соответствующий данному событию код автоматически запишется в Редактор, сам Редактор немедленно получит фокус, и Вы сразу же имеете возможность добавить код обработчика данного события.
Важная часть среды Delphi - Справочник. Для доступа к этому инструменту нужно просто выбрать в системном меню пункт Help и затем Contents. Справочник является контекстно-зависимым; при нажатии клавиши F1, Вы получите подсказку, соответствующую текущей ситуации. Например, находясь в Инспекторе Объектов, выберите какое-нибудь свойство и нажмите F1 - Вы получите справку о назначении данного свойства. Если в любой момент работы в среде Delphi возникает неясность или затруднение - жмите F1 и необходимая информация появится на экране.
Для дальнейшего знакомства со средой программирования Delphi потребуется рассказать о составе первой страницы Палитры Компонент.
На первой странице Палитры Компонент размещены 16 объектов определенно важных для использования. Мало кто обойдется длительное время без кнопок, списков, окон ввода и т.д. Все эти объекты такая же часть Windows, как мышь или окно.
Рис. 5. Редактор Картинок можно использовать для создания картинок для кнопок, иконок и др. визуальных частей для программы
Рис. 6. Компоненты, расположенные на первой странице Палитры
Набор и порядок компонент на каждой странице являются настраиваемыми. Так, Вы можете добавить к имеющимся компонентам новые, изменить их количество и порядок.
Основные стандартные компоненты Delphi перечислены ниже с некоторыми комментариями по их применению. При изучении данных компонент было бы полезно иметь под рукой компьютер с тем, чтобы посмотреть, как они работают и как ими манипулировать.
MainMenu позволяет Вам поместить главное меню в программу. При помещении MainMenu на форму это выглядит, как просто иконка. Иконки данного типа называют "невидимыми компонентом", поскольку они невидимы во время выполнения программы. Создание меню включает три шага: а) помещение MainMenu на форму; б) вызов Дизайнера Меню через свойство Items в Инспекторе Объектов; в) определение пунктов меню в Дизайнере Меню (заданием свойства Caption в Инспекторе Объектов).
PopupMenu позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши.
Label служит для отображения текста на экране. Вы можете изменить шрифт и цвет метки, если дважды щелкнете на свойство Font в Инспекторе Объектов.
Edit - стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы.
Memo - иная форма Edit. Подразумевает работу с большими текстами. Memo может переносить слова, сохранять в буфере обмена фрагменты текста и восстанавливать их, и другие основные функции редактора.
Button позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. В Delphi все делается очень просто. Поместив Button на форму, Вы по двойному щелчку мыши можете создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом (подчеркнуто то, что нужно написать вручную):
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Caption:= 'Yes!';
end;
CheckBox отображает строку текста с маленьким окошком рядом. В окошке можно поставить отметку, которая означает, что что-то выбрано. Например, если посмотреть окно диалога настроек компилятора (пункт меню Project | Options, страница Compiler), то можно увидеть, что оно состоит преимущественно из CheckBox’ов.
RadioButton позволяет выбрать только одну опцию из нескольких. Например, если Вы откроете диалог Project | Options и выберете страницу Linker, то Вы можете видеть, что секции Map file и Linker output состоят из наборов RadioButton.
ListBox нужен для показа прокручиваемого списка. Классический пример ListBox’а в среде Windows - выбор файла из списка в пункте меню File | Open многих приложений. Названия файлов или папок и находятся в ListBox’е.
ComboBox во многом напоминает ListBox, за исключением того, что позволяет водить информацию в маленьком поле ввода сверху ListBox. Есть несколько типов ComboBox, но наиболее популярен выпадающий вниз (drop-down combo box), который можно видеть, например, внизу окна диалога выбора файла.
Scrollbar - полоса прокрутки, появляется автоматически в объектах редактирования, ListBox’ах - при необходимости прокрутки текста для просмотра.
GroupBox используется для визуальных целей и для указания Windows, каков порядок перемещения по компонентам на форме (при нажатии клавиши TAB).
Panel - управляющий элемент, похожий на GroupBox, используется в декоративных целях. Чтобы использовать Panel, просто поместите его на форму и затем положите другие компоненты на него. Теперь при перемещении Panel будут передвигаться и эти компоненты. Panel используется также для создания линейки инструментов и окна статуса.
- ScrollBox представляет место на форме, которое можно скроллировать в вертикальном и горизонтальном направлениях. Пока Вы в явном виде не отключите эту возможность, форма сама по себе действует так же. Однако, могут быть случаи, когда понадобится прокручивать только часть формы. В таких случаях используется ScrollBox.
Это список основных объектов на первой странице Палитры Компонент. Если Вам нужна дополнительная информация, то выберите на Палитре объект и нажмите клавишу F1 - появится Справочник с полным описанием данного объекта.
2.3 Процедуры и функции.
Процедуры и функции в языке Delphi служат для выполнения специализированных операций. Delphi имеет множество стандартных подпрограмм, но всё равно приходится создавать собственные для выполнения часто повторяющихся операций с данными, которые могут меняться и процедуры, и функции позволяют добиться одинаковых результатов. Но разница всё же есть.
Процедура Delphi просто выполняет требуемые операции, и возвращает результаты в списке своих параметров.
Функция Delphi также позволяет выполнить всё перечисленное, но дополнительно возвращает результат в присвоенном ей самой значении. То есть вызов функции может присутствовать в выражении справа от оператора присваивания. Таким образом, функция - более универсальный объект.
Описание подпрограммы состоит из ключевого слова procedure или function, за которым следует имя подпрограммы со списком параметров, заключённых в скобки. В случае функции далее ставится двоеточие и указывается тип возвращаемого значения. Обычная точка с запятой далее – обязательна. Сам код подпрограммы заключается в "логические скобки" begin/end. Для функции необходимо в коде присвоить переменной с именем функции или специальной зарезервированной переменной Result (предпочтительно) возвращаемое функцией значение.
Примеры:
procedure Имя_процедуры(параметры); | function Имя_функции(параметры): тип_результата; |
Описанная таким образом подпрограмма должна быть размещена в основной программе до первого её вызова. Иначе при компиляции получите извещение о том, что "неизвестный идентификатор..." Следить за этим не всегда удобно…
Работа с графикой в Delphi это не только линии и рисунки, но также и печать текстовых документов. Поэтому в Delphi работе с графикой нужно уделить немного времени. Работа с графикой в Delphi предполагает обращение к канве - свойству Canvas компонентов. Canvas Delphi это холст, который позволяет программисту иметь доступ к каждой своей точке (пикселу), и словно художнику отображать то, что требуется. Конечно, рисовать попиксельно для работы с графикой в Delphi не приходится, система Delphi предоставляет для мощные средства работы с графикой, облегчающие задачу программиста.
В работе с графикой в Delphi в распоряжении программиста находятся канва (холст, полотно - свойство Canvas Delphi компонентов), карандаш (свойство Pen), кисть (свойство Brush) того компонента или объекта, на котором предполагается рисовать. У карандаша Pen и кисти Brush можно менять цвет (свойство Color) и стиль (свойство Style). Доступ к шрифтам предоставляет свойство канвы Font. Эти инструменты позволяют отображать как текст, так и достаточно сложные графики математического и инженерного содержания, а также рисунки. Кроме этого, работа с графикой позволяет использовать в Delphi такие ресурсы Windows как графические и видеофайлы.
Конечно, не все компоненты в Delphi имеют эти свойства. На вкладке Additional расположен специализированный компонент TImage, специально предназначенный для рисования, но также свойство Canvas имеют, например, такие компоненты как ListBox, ComboBox, StringGrid, а также и сама Форма, которая размещает наши компоненты! Кроме того, для печати документов Delphi обращается к свойству Canvas такого объекта как принтер.
Основное свойство такого объекта как Canvas Delphi - Pixels[i, j] типа TColor, то есть это двумерный массив точек (пикселов), задаваемых своим цветом. Рисование на канве происходит в момент присвоения какой-либо точке канвы заданного цвета. Каждому пикселу может быть присвоен любой доступный для Windows цвет. Например, выполнение оператора Image1.Canvas.Pixels[100, 100]:=clRed; приведёт к рисованию красной точки с координатами [100, 100]. Узнать цвет пиксела можно обратным присвоением:
Color:=Image1.Canvas.Pixels[100, 100];
Тип TColor определён как длинное целое (LongInt). Его четыре байта содержат информацию о долях синего (B), зелёного (G), и красного (R) цветов. В 16-ричной системе это выглядит так: $00BBGGRR. Доля каждого цвета может меняться от 0 до 255. Поэтому чтобы отобразить максимально красную точку, ей нужно присвоить цвет $000000FF.
Для стандартных цветов в Delphi определён набор текстовых констант. Увидеть его можно, открыв в Инспекторе Объектов свойство Color, например, той же Формы.
Мультипликация
Под мультипликацией обычно понимается движущийся и меняющийся рисунок. В простейшем случае рисунок может только двигаться или только меняться.
Как было показано выше, рисунок может быть сформирован из графических примитивов (линий, окружностей, дуг, многоугольников и т. д.). Обеспечить перемещение рисунка довольно просто: надо сначала вывести рисунок на экран, затем через некоторое время стереть его и снова вывести этот же рисунок, но уже на некотором расстоянии от его первоначального положения. Подбором времени между выводом и удалением рисунка, а также расстояния между старым и новым положением рисунка (шага перемещения), можно добиться того, что у наблюдателя будет складываться впечатление, что рисунок равномерно движется по экрану.
Заключение
Конечно, в одном проекте, нельзя рассмотреть все вопросы, связанные с программированием на языке Delphi и методики преподавания. Но все же представленного материала достаточно для того, чтобы иметь представление о графических возможностях этой среды программирования. В работе рассмотрены базовые понятия графики в Delphi, а также проведена аналогия с темой базового курса информатики – графическая информация и компьютер. Рассмотрен теоретический аспект работы с графическим редактором и кодирование изображения. Основные возможности среды разработки Delphi и методы работы в ней — все то, что следует уметь начинающему программисту со школьной скамьи. Ведь научиться программировать, не владея общими вопросами теории и практики программирования, практически невозможно.
В заключение еще раз повторим, что научиться программировать можно только программируя, решая конкретные задачи. Поэтому были созданы анимированные программы и аналог самого простого графического редактора. ( приложение 1, 2).
Используя рассмотренные в проекте процедуры и функции можно научиться создавать различные изображения и мультипликационные эффекты в среде программирования.
В ходе работы над проектом формировались следующие компетенции:
- Умение работать с различными источниками информации, структурирование материала;
- Строить свою речь в соответствии с языковыми нормами;
- Оформлять полученные знания в соответствии с правилами;
- Выбирать оптимальные пути решения поставленных задач;
- Представлять свои знания в удобной для работы форме.
Хотелось бы привести высказывание программиста и автора многих книг по программированию Джона Корригана: «… Делфи может быть превосходным языком для обучения новичков тому, как писать программы… Он определенно оказал важное воздействие на проектирование новых языков…»
Список информационных источников:
- А.В.Могилёв. Практикум по информатике. Издательство “Академия”. 2001г
- В. Гофман, А. Хомоненко. Delphi 5 . БХВПетербург, 2001.
3. Род Стивенс. Delphi Готовые алгоритмы. М., ДМК Пресс, 2001. - Грабалов П.К.Компьютерная графика и основные графические редакторы. – Калининград, 2003 г.
- Магилев А.В, Булгакова Н.М. – Методические рекомендации к учебному комплекту «Мир информатики». Смоленск 2005 г.
- Стив Тейксейра и Ксавье Пачеко. Delphi 5 Руководство разработчика Том 1, 2 . Издательский дом “ Вильямс”, 2001.
- Основы программирования в задачах и примерах, А. В. Милов, Харьков: ФОЛИО, 2002г.
- Программирование. С. Симонович, Г. Евсеев, Москва: АСТ – ПРЕСС книга 2000г.
- Практика программирования, Ю. Кетков, А. Кетков, СПб: БХБ/ Петербург, 2002г.
- Семакин И.Г, Залогова Л.А «Информатика и ИКТ» Бином. Лаборатория знаний М. - 2008г.
- Шалунова М. Г., Эрганова Н. Е. Практикум по методике профессионального обучения / Учебное пособие – Ек.: Изд-во УГППУ, 2005
Приложение I
Листинг программы « Редактор».
В ходе составления этой программы ученику требуется знать основы работы графического редактора. Программа построена по принципу примитивного рисования. Выбирается фон, основные цвета, также можно выбрать дополнительные цвета или определения цвета фона. Затем выбираем цвет линий, их также можно нарисовать различными цветами.
procedure TForm1.Button1Click(Sender: TObject);
begin
if colordialog1.Execute then
begin
paintbox1.Canvas.Brush.Color:=colordialog1.Color;
paintbox1.Canvas.FillRect(clientrect);
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
paintbox1.Canvas.FillRect(clientrect);
end;
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
red:=scrollbar1.Position;
edit1.text:=inttostr(red);
c:=rgb(red,green,blue);
paintbox1.Color:=c;
form1.Caption:='Синтез цвета на фоне:r:'+inttostr(red)+
'g:'+inttostr(green)+
'b:'+inttostr(blue);
end;
procedure TForm1.ScrollBar3Change(Sender: TObject);
begin
blue:=scrollbar1.Position;
edit3.text:=inttostr(blue);
c:=rgb(red,green,blue);
paintbox1.Color:=c;
form1.Caption:='Синтез цвета на фоне:r:'+inttostr(red)+
'g:'+inttostr(green)+
'b:'+inttostr(blue);
end;
procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
green:=scrollbar1.Position;
edit2.text:=inttostr(green);
c:=rgb(red,green,blue);
paintbox1.Color:=c;
form1.Caption:='Синтез цвета на фоне:r:'+inttostr(red)+
'g:'+inttostr(green)+
'b:'+inttostr(blue);
end;
end.
Приложение II
Программа «Кораблик»
1. Выбирается некоторая точка изображения, которая принимается за базовую.
2. Координаты остальных точек отсчитываются от базовой точки.
3. Если координаты точек изображения отсчитывать от базовой в относительных единицах, а не в пикселах, то обеспечивается возможность масштабирования изображения.
На рисунке приведено изображение кораблика. Базовой точкой является точка с координатами (X0 Y0). Координаты остальных точек отсчитываются именно от этой точки.
Определение координат изображения относительно базовой точки
В листинге приведен текст программы, которая выводит на экран изображение перемещающегося кораблика.
Листинг. «Кораблик»
unit ship_;
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations } public
{ Public declarations } end;
var
Form1: TForm1;
x,y: integer; // координаты корабля (базовой точки)
implementation
{$R *.DFM}
// вычерчивает кораблик
procedure Titanik(x,y: integer; // координаты базовой точки
color: TColor); // цвет корабля
const dx = 5; dy = 5;
var
buf: TColor;
begin
with form1.canvas do begin
buf:=pen.Color; // сохраним текущий цвет
pen.Color:=color;
// установим нужный цвет
// рисуем . . .
// корпус MoveTo(x,y);
LineTo(x,y-2*dy) ;
LineTo (x+10*dx, y-2*dy) ;
LineTo (x+ll*dx, y-3*dy) ;
LineTo (x+17*dx,y-3*dy) ;
LineTo (x+14*dx, y) ;
LineTo (x,y) ;
// надстройка
MoveTo(x+3*dx,y-2*dy) ;
LineTo (x+4*dx, y-3*dy) ;
LineTo (x+4*dx, y-4*dy) ;
LineTo (x+13*dx,y-4*dy) ;
LineTo (x+13*dx, y-3*dy) ;
MoveTo(x+5*dx,y-3*dy) ;
LineTo (x+9*dx, y-3*dy) ;
// капитанский мостик
Rectangle (x+8*dx, y-4*dy, x+ll*dx, y-5*dy)
// труба
Rectangle (x+7*dx, y-4*dy, x+8*dx, y-7*dy) ;
// иллюминаторы
Ellipse (x+ll*dx,y-2*dy,x+12*dx,y-l*dy) ;
Ellipse (x+13*dx, y-2*dy, x+14*dx, y-l*dy) ;
// мачта
MoveTo(.x+10*dx,y-5*dy) ; LineTo(x+10*dx,y-10*dy);
// оснастка
MoveTo(x+17*dx,y-3*dy);
LineTo(x+10*dx,y-10*dy);
LineTo(x,y-2*dy);
pen.Color:=buf; // восстановим старый цвет карандаша
end;
end;
// обработка сигнала таймера
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Titanik(x,y,form1.color); // стереть рисунок
if x < Form1.ClientWidth
then x := x+5
else begin // новый рейс x := 0;
у := Random(50) + 100;
end;
Titanik(x,у,clWhite); // нарисовать в новой точке end;
procedure TForml.FormActivate(Sender: TObject);
begin
x:=0; y:=100;
Form1.Color:=clNavy;
Timerl.Interval := 50; // сигнал таймера каждые 50 миллисекунд
end;
end.
Отрисовку и стирание изображения кораблика выполняет процедура Titanik, которая получает в качестве параметров координаты базовой точки и цвет, которым надо вычертить изображение кораблика. Если при вызове процедуры цвет отличается от цвета фона формы, то процедура рисует кораблик, а если совпадает — то "стирает". В процедуре Titanik объявлены константы dx и dy, определяющие шаг (в пикселах), используемый при вычислении координат точек изображения. Меняя значения этих констант, можно проводить масштабирование изображения.
Программа «Самолет»
В предыдущем примере изображение формировалось из графических примитивов. Теперь рассмотрим, как можно реализовать перемещение одного сложного изображения на фоне другого, например перемещение самолета на фоне городского пейзажа.
Эффект перемещения картинки может быть создан путем периодической перерисовки картинки с некоторым смещением относительно ее прежнего положения. При этом предполагается, что перед выводом картинки в новой точке сначала удаляется предыдущее изображение. Удаление картинки может быть выполнено путем перерисовки всей фоновой картинки или только той ее части, которая перекрыта битовым образом движущегося объекта.
В рассматриваемой программе используется второй подход. Картинка выводится применением метода Draw к свойству canvas компонента Image, a стирается путем копирования (метод copyRect) нужной части фона из буфера на поверхность компонента Image.
Форма программы приведена на рисунке, а текст — в листинге.
Компонент image используется для вывода фона, а компонент Timer — для организации задержки между циклами удаления и вывода на новом месте изображения самолета.
Листинг. Летящий самолет
unit anim_;
interface
uses
Windows, Messages, SysUtils,
Classes, Graphics, Controls,
Forms, Dialogs, ExtCtrls, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Timer1: TTimer;
Image1: Tlmage;
procedure FormActivate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction); private
{ Private declarations } public
{ Public declarations } end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
Back, bitmap, Buf : TBitMap; // фон, картинка, буфер
BackRct : TRect; // область фона, которая должна быть
// восстановлена из буфера
BufRet: Trect; // область буфера, которая используется для
// восстановления фона
х,у:integer; // текущее положение картинки
W,H: integer; // размеры картинки
procedure TForm1.FormActivate(Sender: TObject);
begin
// создать три объекта — битовых образа
Back := TBitmap.Create; // фон
bitmap := TBitmap.Create; // картинка
Buf := TBitmap.Create; // буфер
// загрузить и вывести фон
Back.LoadFromFile('factory.bmp');
Form1.Image1.canvas.Draw(0,0,Back);
// загрузить картинку, которая будет двигаться
bitmap.LoadFromFile('aplane.bmp');
// определим "прозрачный" цвет
bitmap.Transparent := True;
bitmap.TransParentColor := bitmap.canvas.pixels[1,1];
// создать буфер для сохранения копии области фона,
// на которую накладывается картинка
W:= bitmap.Width;
Н:= bitmap.Height;
Buf.Width:= W;
Buf.Height:=H;
Buf.Palette:=Back.Palette;
// Чтобы обеспечить соответствие палитр //
Buf.Canvas.CopyMode:=cmSrcCopy;
// определим область буфера, которая
// будет использоваться
// для восстановления фона
BufRct:=Bounds(0,0,W,H);
// начальное положение картинки
х := -W; у := 20;
// определим сохраняемую область фона
BackRct:=Bounds(x,y,W,H); // и сохраним ее
Buf.Canvas.CopyRect(BufRet,Back.Canvas,BackRct);
end;
// обработка сигнала таймера
procedure TForm1.Timer1Timer(Sender: TObject);
begin
// восстановлением фона (из буфера) удалим рисунок
Forml.image1.canvas.Draw(x,у,Buf);
x:=x+2;
if x>fоrm1.Image1.Width then x:=-W;
// определим сохраняемую область фона
BackRct:=Bounds(x,у,W,H);
// сохраним ее копию
Buf.Canvas.CopyRect(BufRct,Back.Canvas,BackRct);
// выведем рисунок
Forml.image1.canvas.Draw(x,y,bitmap);
end;
// завершение работы программы
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// освободим память, выделенную для хранения битовых образов//
Back.Free;
bitmap.Free;
Buf.Free;
end;
end.
Форма программы Самолет
Для хранения битовых образов (картинок) фона и самолета, а также копии области фона, перекрываемой изображением самолета, используются объекты типа TBitMap, которые создаются динамически процедурой FormActivate. Эта же процедура загружает из файлов картинки фона (factory.bmp) и самолета (aplane.bmp), а также сохраняет область фона, на которую первый раз будет накладываться картинка.
Сохранение копии фона выполняется при помощи метода CopyRect, который позволяет выполнить копирование прямоугольного фрагмента одного битового образа в другой. В качестве параметров методу передаются координаты и размер области, куда должно быть выполнено копирование, поверхность, откуда должно быть выполнено копирование, а также положение и размер копируемой области. Информация о положении и размере копируемой в буфер области фона, на которую будет наложено изображение самолета и которая впоследствии должна быть восстановлена из буфера, находится в структуре BackRct типа TRect. Для заполнения этой структуры используется функция Bounds.
Следует обратить внимание на то, что начальное значение переменной х, которая определяет положение левой верхней точки битового образа движущейся картинки, — отрицательное число, равное ширине битового образа картинки. В начале работы программы изображение самолета не появляется, картинка отрисовывается за границей видимой области. С каждым событием OnTimer значение координаты х увеличивается, и на экране появляется та часть битового образа, координаты которой больше нуля. Таким образом, у наблюдателя создается впечатление, что самолет вылетает из-за левой границы окна.
По теме: методические разработки, презентации и конспекты
Обработка графической информации.Системы машинной графики.Типы графических файлов
Обработка графической информации.Системы машинной графики.Типы графических файлов...
Графический редактор растрового типа. Особенности графического редактора Paint.
Цели: 1. Способствовать восприятию учащимися нового учебного материала. 2. Организовать деятельность учащихся по изучению и первичному закреплению понятий «Графический редактор растров...
Графическое решение неравенств c одной переменной. Графический способ решения систем уравнений.
Алгебра. Повторение. Подготовка к ГИА. 9 класс....
Тема урока Понятия «изделие» и «деталь». Графическое изображение деталей и изделий. Графическая документация
Понятие разницы между "изделием" и "деталью"...
Методическая разработка тематического зачёта на тему: «Кодирование графической и обработка графической и мультимедийной информации» 9 класс
Методическая разработка тематического зачёта на тему: «Кодирование графической и обработка графической и мультимедийной информации» 9 класс...
Отношение «входит в состав». Практическая работа №3 «Повторяем возможности графического редактора – инструмента создания графических объектов» (задания 5–6)
Технологическая карта урока. Отношение «входит в состав». Практическая работа №3 «Повторяем возможности графического редактора – инструмента создания графических объектов» (задания 5–6).УМК Босо...
Методическая разработка урока информатики в 6 классе «Защита проектов по теме «Возможности графического редактора для создания графических изображений»
Цели урока:образовательная: научить использовать ИКТ для создания проектов, представления результатов своей работы; навыкам использования современных технических средств;развивающая: развивать умение ...