Язык программирования MetaPost

Автор работы: Пользователь скрыл имя, 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. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ…

Файлы: 1 файл

Курсовая работа.docx

— 243.47 Кб (Скачать файл)

Министерство  образования Республики Беларусь

УО «Мозырский государственный педагогический

университет имени  И.П. Шамякина»

 

 

Кафедра информатики и  методики

преподавания информатики

 

 

 

 

Курсовая работа

 

Язык программирования MetaPost

 

 

 

Выполнила:

студентка 3 курса 2 группы

филологического факультета

Домасевич Кристина Дмитриевна

 

Научный руководитель:

ассистент кафедры информатики и МПИ

Егоров Александр Николаевич

 

 

 

Оценка научного руководителя:                     


                                                                                            оценка, дата сдачи, подпись

 

 

Итоговая оценка:


 

 

 

Мозырь 2013 

Учреждение образования 
«Мозырский государственный педагогический университет имени И.П. Шамякина»

ФИЗИКО-МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ

КАФЕДРА ИНФОРМАТИКИ И  МПИ

«УТВЕРЖДАЮ»

Заведующий кафедрой ___________________________      (подпись)

                                                                                                                    « ___ » _________________20__ г.

ЗАДАНИЕ

на  курсовую работу по дисциплине  

Студенту  

  1. Цель работы:  
  2. Тема работы:  

 

  1. Исходные данные к работе:  

 

 

  1. Содержание расчетно-пояснительной записки (перечень подлежащих разработке вопросов):  

 

 

  1. Состав представляемых к защите документов:  

 

  1. Календарный график работы над проектом на весь период работы (с указанием сроков выполнения и трудоемкости отдельных этапов):

 

 

Дата представления курсовой работы: « ____» __________ 20__ г.

Дата защиты: « ____» __________ 20__ г.

Дата выдачи задания: « ____» __________ 20__ г.

Задание принял к исполнению:                                                                          ________________________

(подпись)

Руководитель работы:    ________________________

(подпись)

 

РЕЗЮМЕ

Автор: Домасевич Кристина Дмитриевна

Курсовая работа на тему: Создание иллюстраций в MetaPost.

Целью данной курсовой работы является ознакомление и изучение основ языка программирования MetaPost и его основных компонентов, а также создание иллюстраций и графических объектов с помощью языка программирования MetaPost.

Объектом исследования данной курсовой работы является язык программирования MetaPost, а также его практическое применение.

При написании курсовой работы мною были использованы следующие методы исследования:

  1. Анализ и синтез научно-методической литературы.
  2. Обобщение изученного материала для дальнейшего его использования в практической части курсовой работы.
  3. Моделирование исследуемого графического объекта.
  4. Экспериментальный метод исследования графического объекта и последующее его создание.
  5. Оценивание и обобщение полученных результатов.

В курсовой работе рассматриваются  основы языка программирования 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. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ……………………………...27

 

 

 

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

Компьютерные технологии дают возможность создавать высококачественные документы, например система LATEX фактически заменяет собой электронную типографию, но создание иллюстраций выносится за рамки этого процесса. Однако основной смысл для множества различной литературы, технической, научной и т.д. несут в себе именно рисунки.

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-тексты с помощью обычного \includegraphics. Для этого достаточно в заголовок tex-файла добавить команду из LaTeX-пакета graphicx:

\ DeclareGraphicsRule{*}{eps}{*}{}

Благодаря этому, LaTeX поймет, что файлы с расширениями .1 и т.д. на самом деле eps-рисунки. Шрифты можно внедрить посредством программ latex и dvips с результатом в виде eps-файла или скрипта mptopdf с результатом в виде pdf-файла. Эти картинки уже можно использовать независимо любой программой, которая поддерживает эти векторные форматы.

После заголовка идут описания картинок.  Каждая картинка заключается  между командами beginfig и endfig. В качестве параметра beginfig указывается порядковый номер картинки. При компиляции этот номер будет добавляться к картинке как расширение. Файл должен закончиться командой end. или bye. Эти команды дают понять интерпретатору mpost, что обработка закончена.

Схематически MetaPost-конвейер можно представить так (рис.1):


 

 

 

 

 

 

 

 

 

Рис.1

1.2 Язык META

В качестве базового языка, инструкции которого подаются на вход программы MetaPost, используется язык META.

В MetaPost можно оперировать следующими типами данных:

  • boolean – логический (True/False);
  • numeric – обычное число;
  • pen (перо) – то, чем компьютер рисует (в подавляющем большинстве случаев используется круглое перо pencircle);
  • pair (точка) – пара чисел (x, y) в случае декартовых координат или R*dir(α) в случае полярных координат;
  • path (путь) – совокупность точек с описанием типа соединений между ними;
  • color (цвет) – тройка чисел (r, g, b);
  • picture (картинка) – совокупность путей и точек;
  • string (строка) – ASCII строка;
  • transform – линейные преобразования, которые можно применять к объектам типа pair, pen, path и picture.

Имена переменных в META могут состоять из нескольких лексем. Лексемы могут быть либо буквенными, либо числовыми.

Все переменные необходимо объявлять перед использованием. Исключением являются переменные типа numeric. Массивы объявляются и используются следующим образом:

pair w[];

w1:=(10,5);

w[2]=w[1];

В META можно опускать некоторые из операторов для сокращения записей, например, 2*x соответствует записи 2x. Но существуют некоторые особенности, так как 1/2x – это 0.5x, что более естественно с точки зрения математики, но не программирования. В META сначала обрабатываются числовые лексемы.

Набор стандартных вычислительных операций расширен с учётом специализации  языка. В частности, поддерживаются операции пифагорова


сложения                                     , пифагорова вычитания                                        , целочисленное деление div и возведение в степень                      .


В языке присутствуют операторы  цикла, условных переходов и тому подобное. Отличительной особенностью META является возможность решать линейные уравнения. Например, выражение вида C=1/2[A,B], означает, что точка C находится ровно посередине между точками А и B.

Программу mpost можно использовать в режиме калькулятора для вычислений на языке META.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.3 Базовые команды для рисования

Простейшей командой рисования  является генерация прямых линий. Команда draw с координатами (20,20)--(0,0) рисует диагональную линию, а команда draw с координатами (20,20)--(0,0)--(0,30)--(30,0)--(0,0) рисует ломаную линию, подобную этой (рис.2):

 


 

 

 

Рис.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)--(3cm,0)--(0,0)

генерирует больший вариант  диаграммы выше. Будет верно сказать 0 вместо 0cm, потому что cm в действительности только множитель преобразования и 0cm только умножает этот множитель на ноль. (MetaPost понимает конструкции подобные 2cm как сокращение для 2*cm).

Информация о работе Язык программирования MetaPost