Автор работы: Пользователь скрыл имя, 17 Сентября 2013 в 00:54, курсовая работа
MetaPost может быть полезным для тех случаев, когда картинку проще описать логически, нежели образно. MetaPost особенно широко используется для генерации картинок для технических документов, где некоторые свойства рисунка могут контролироваться математическими или геометрическими ограничениями, которые наилучшим образом выражаются в символьной форме. Другими словами, MetaPost не заменяет средства для ручного рисования или интерактивные графические редакторы. Это настоящий язык программирования для генерации графики и иллюстраций.
ВВЕДЕНИЕ …………………………………………………………………………..….5
1. ЯЗЫК ПРОГРАММИРОВАНИЯ METAPOST…………………………………...6
1.1 MetaPost- конвейер…………………………………………………..6
1.2 Язык META………………………………………………………………….8
1.3 Базовые команды для рисования………………………..…..10
1.4 Интеграция текста………………………………………………......14
1.5 Заливка и цвета……………………………………………………..…16
2. АВТОМАТІЗАЦІЯ В METAPOST………………………………………………….18
2.1 Объекты picture, трансформация……………………………18
2.2 Циклы и условные операторы…………………………..……..19
3. Управление выводом MetaPost…………………………………………21
3.1 Предварительный просмотр графики MetaPost………21
3.2 Использование графики MetaPost в TEX, LATEX....…….22
4. пРАКТИЧЕСКАЯ ЧАСТЬ………………………………………………………....24
5. зАКЛЮЧЕНИЕ……………………………………………………………………....26
6. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ…
Министерство образования Республики Беларусь
УО «Мозырский государственный педагогический
университет имени И.П. Шамякина»
Кафедра информатики и методики
преподавания информатики
Курсовая работа
Язык программирования MetaPost
Выполнила:
студентка 3 курса 2 группы
филологического факультета
Домасевич Кристина Дмитриевна
Научный руководитель:
ассистент кафедры информатики и МПИ
Егоров Александр Николаевич
Оценка научного руководителя:
Итоговая оценка:
Мозырь 2013
Учреждение образования
«Мозырский государственный педагогический
университет имени И.П. Шамякина»
ФИЗИКО-МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ
КАФЕДРА ИНФОРМАТИКИ И МПИ
«УТВЕРЖДАЮ»
Заведующий кафедрой ___________________________
Студенту
Дата представления курсовой работы: « ____» __________ 20__ г.
Дата защиты: « ____» __________ 20__ г.
Дата выдачи задания: « ____» __________ 20__ г.
Задание принял к исполнению:
(подпись)
Руководитель работы: ________________________
(подпись)
РЕЗЮМЕ
Автор: Домасевич Кристина Дмитриевна
Курсовая работа на тему: Создание иллюстраций в MetaPost.
Целью данной курсовой работы является ознакомление и изучение основ языка программирования MetaPost и его основных компонентов, а также создание иллюстраций и графических объектов с помощью языка программирования MetaPost.
Объектом исследования данной курсовой работы является язык программирования MetaPost, а также его практическое применение.
При написании курсовой работы мною были использованы следующие методы исследования:
В курсовой работе рассматриваются основы языка программирования MetaPost, для создания и манипулирования иллюстрациями, генерации графических объектов, текстов.
Актуальность данной темы состоит в том, что человек с помощью компьютерных технологий может создавать высококачественные и точные графики.
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ
…………………………………………………………………………..
1.
ЯЗЫК ПРОГРАММИРОВАНИЯ
1.1 MetaPost- конвейер…………………………………………………..6
1.2
Язык META………………………………………………………
1.3
Базовые команды для рисования…
1.4
Интеграция текста…………………………………
1.5
Заливка и цвета………………………………………
2. АВТОМАТІЗАЦІЯ В METAPOST………………………………………………….18
2.1 Объекты picture, трансформация……………………………18
2.2 Циклы и условные операторы…………………………..……..19
3. Управление выводом MetaPost…………………………………………21
3.1 Предварительный просмотр графики MetaPost………21
3.2 Использование графики MetaPost в TEX, LATEX....…….22
4.
пРАКТИЧЕСКАЯ ЧАСТЬ………………………………………………………....
5.
зАКЛЮЧЕНИЕ……………………………………………………
6. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ……………………………...27
ВВЕДЕНИЕ
Компьютерные технологии
дают возможность создавать
MetaPost — интерпретатор языка программирования META, который можно использовать для создания графических иллюстраций. MetaPost был создан Джоном Хобби в то время, когда он был аспирантом у Дональда Э. Кнута. В качестве основы была взята система создания шрифтов MetaFont.
MetaPost проектировался как простая программа, которую можно относительно быстро настроить под свои нужды. Он вполне обозрим и компактен. На входе интерпретатору подаётся текст на META, а на выходе получается графический файл в формате PostScript. Язык META, унаследованный от MetaFont, позволяет оперировать геометрическими объектами, такими как: точка, путь, картинка и выполнять над ними различные алгебраические действия, например, сдвиг, вращение и другие линейные преобразования.
Основными отличиями MetaPost от MetaFont кроме выходного формата является наличие поддержки цвета и возможность делать текстовые вставки.
MetaPost может быть полезным для тех случаев, когда картинку проще описать логически, нежели образно. MetaPost особенно широко используется для генерации картинок для технических документов, где некоторые свойства рисунка могут контролироваться математическими или геометрическими ограничениями, которые наилучшим образом выражаются в символьной форме. Другими словами, MetaPost не заменяет средства для ручного рисования или интерактивные графические редакторы. Это настоящий язык программирования для генерации графики и иллюстраций.
1 Язык программирования MetaPost
1.1 MetaPost- конвейер
Для использования MetaPost подготавливается входной файл с MetaPost-кодом – это текстовый файл с расширением .mp с инструкциями на языке META. В одном mp-файле можно хранить одну или несколько описаний картинок. Это делается между командами:
beginfig(1);
…
endfig;
end.
Здесь 1 – порядковый номер
рисунка. Количество их может быть любым,
но «end.» ставится только для самого последнего
рисунка – он означает конец обработки.
Затем для компиляции вызывается сам MetaPost
при помощи команды:
mpost {имя файла}
Что бы правильно отображалась кириллица (русские и греческие буквы) нужно скомпилировать входной файл через LaTex, а не через TeX при помощи команды: mpost –tex=latex {имя файла}
В результате создаются файлы с тем же именем, что и у исходного файла, но с расширениями в виде чисел, которые указываются в декларации beginfig.
Внедрить кириллицу в метки MetaPost можно только с помощью LaTeX. Для этого mp-файл должен иметь примерно следующий заголовок:
verbatimtex
\documentclass[12pt]{minimal}
%простейшая кириллизация
\usepackage[koi8-r]{inputenc}
\usepackage[english, russian]{babel}
\begin{document}
etex;
Этот заголовок будет использоваться каждый раз, когда MetaPost доходит до текста, находящегося между метками btex и etex. Если для создание метки требуется какой-либо пакет LaTeX, то, соответственно, необходимо добавить этот пакет в заголовок стандартным образом.
Результирующие файлы
сразу можно вставлять в LaTeX-
\ DeclareGraphicsRule{*}{eps}{*}
Благодаря этому, LaTeX поймет, что файлы с расширениями .1 и т.д. на самом деле eps-рисунки. Шрифты можно внедрить посредством программ latex и dvips с результатом в виде eps-файла или скрипта mptopdf с результатом в виде pdf-файла. Эти картинки уже можно использовать независимо любой программой, которая поддерживает эти векторные форматы.
После заголовка идут описания
картинок. Каждая картинка заключается
между командами beginfig и
Схематически MetaPost-конвейер можно представить так (рис.1):
Рис.1
1.2 Язык META
В качестве базового языка, инструкции которого подаются на вход программы MetaPost, используется язык META.
В MetaPost можно оперировать следующими типами данных:
Имена переменных в META могут состоять из нескольких лексем. Лексемы могут быть либо буквенными, либо числовыми.
Все переменные необходимо
объявлять перед
pair w[];
w1:=(10,5);
w[2]=w[1];
В META можно опускать некоторые из операторов для сокращения записей, например, 2*x соответствует записи 2x. Но существуют некоторые особенности, так как 1/2x – это 0.5x, что более естественно с точки зрения математики, но не программирования. В META сначала обрабатываются числовые лексемы.
Набор стандартных вычислительных операций расширен с учётом специализации языка. В частности, поддерживаются операции пифагорова
сложения
В языке присутствуют операторы
цикла, условных переходов и тому
подобное. Отличительной особенностью MET
Программу mpost можно использовать в режиме калькулятора для вычислений на языке META.
1.3 Базовые команды для рисования
Простейшей командой рисования
является генерация прямых линий. Команда
draw с координатами (20,20)--(0,0) рисует диагональную
линию, а команда draw с координатами (20,20)--(0,0)--(0,30)--(30,0)
Рис.2
MetaPost также имеет команду drawdot для печати одной точки, например, drawdot(30,0). MetaPost использует ту же самую типовую систему координат, что и PostScript. Это значит, что (30,0) – это 30 единиц вправо от начала координат, где единица – это 712 дюйма.
MetaPost использует те же имена
для единиц измерения, что и TEX и METAFONT. Таким
образом, bp ссылается на PostScript-пункты (“большие
пункты”), а pt – на пункты принтера. Другие
единицы измерения включают in для дюймов,
cm для сантиметров и mm для миллиметров.
Например, (2cm,2cm)--(0,0)--(0,3cm)--(
генерирует больший вариант диаграммы выше. Будет верно сказать 0 вместо 0cm, потому что cm в действительности только множитель преобразования и 0cm только умножает этот множитель на ноль. (MetaPost понимает конструкции подобные 2cm как сокращение для 2*cm).