Главная > Разное > Принципы программирования в машинной графике
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

1.2. ПРОГРАММИРОВАНИЕ ГРАФИКИ НА ЯЗЫКЕ СИ

Естественные языки, хотя и интересны во многих аспектах, совершенно не подходят для описания алгоритмов. Поэтому не удивительно, что алгоритмы значительно лучше описываются на алгоритмическом языке.

Алгоритмический язык, “понятный” компьютеру, называется языком программирования высокого уровня, или просто языком программирования. В дальнейшем будем иметь в виду именно такое применение, но несколько расширим понятие и будем считать язык программирования действительно “языком

высокого уровня”, если не только компьютер, но так же и человек может понимать его по возможности эффективно и просто. Мы не будем требовать, чтобы язык был легко читаемым для всех. Математические символы непонятны большинству восьмилетних детей, но без них не могут обойтись математики и инженеры. Таким же образом и языки программирования совсем не обязательно должны быть понятными для всех, но они совершенно необходимы профессиональным программистам. Здесь мы будем применять язык Си не только потому, что он достаточно распространен, но главным образом из-за его высокого качества. Для программирования на языке Си нужно быть очень аккуратным, на языке Си логические ошибки приводят к синтаксическим ошибкам гораздо реже, чем, например, на языке Паскаль. Поэтому такие логические ошибки в программе на языке Си могут привести к неправильным результатам или к выводу сообщений о технических ошибках, которые могут оказаться совершенно непонятными. Другими словами, ошибки могут привести к непредсказуемым результатам. Это постоянно следует иметь в виду при программировании на языке Си. При написании программ всегда желательно, чтобы они были легко читаемыми, но это совершенно другой аспект. Люди, которые сами не используют этот язык, полагают, что программы на языке Си воспринимаются с трудом. Но с проблемой читаемости всегда очень сложно. Если одна строка программы на языке Си соответствует десяти строкам программы на языке Бейсик, то несерьезно утверждать, что одну строку языка Си труднее прочитать, чем десять строк языка Бейсик. Если попытаться разобраться в короткой программе на языке Си, заранее предполагая, что она простая, поскольку короткая, то можно очень быстро разочароваться. Об этом нельзя забывать при чтении примеров в этой книге: очень короткие программы на языке Си могут быть совсем не тривиальными и даже интересными!

Для серьезного изучения семантики языка Си в конце книги упомянуто несколько книг о данном языке. Но для пояснения применения языка Си в этой книге ограничимся только такими конструкциями, которые являются специфичными для этого языка. Некоторые сведения о языке Си приведены в Приложении. Рассмотрим здесь самую первую графическую Сопрограмму:

(кликните для просмотра скана)

Программа содержит обращения к четырем графическим подпрограммам:

initgr инициирует графический вывод;

move перемещает перо (реальное или фиктивное) в точку с координатами ху у;

draw вычерчивает отрезок прямой линии из текущей позиции пера в точку с координатами х, у;

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

В языке Си для обозначения технических терминов “процедура” или “подпрограмма” применяется термин “функция”. Обращение к функции записывается обязательно с парой круглых скобок, даже если аргументы отсутствуют. Перед обращениями к функциям move и draw обязательно должно стоять обращение к функции Аналогично вслед за последним обращением к функции move или draw должно стоять обращение к функции endgr. Обе функции, обеспечивают перемещение реального или фиктивного пера в точку с координатами х, у причем при работе функции перо перемещается в поднятом положении, а при работе функции в опущенном. Все упомянутые четыре функции не относятся к языку Си. Это внешние функции, после компиляции любой программы они должны быть добавлены к ней с помощью редактора связей. Если эти программы недоступны непосредственно, то они могут быть выражены через обращения к другим доступным графическим подпрограммам.

В этой книге не будут рассматриваться вопросы об используемых технических средствах. Вместо обсуждения особенностей различных плоттеров и других графических устройств здесь все внимание будет сфокусировано на общих, приборно-независимых принципах программирования. При технических средствах, использовавшихся автором, подпрограмма просит пользователя выбрать один из возможных режимов работы — “немедленный” или “задержанный”. Выбор режима “немедленный” приводит к тому, что сформированный графический вывод сразу же посылается на экран терминала, что обеспечивает возможность взаимодействия. Режим “задержанный” приводит к записи информации о чертеже в файл на диске, который затем может

быть преобразован для пересылки на различные устройства, такие как перьевой плоттер, матричное печатающее устройство, или на упомянутый ранее графический терминал. Все эти устройства будут хорошо работать, если диапазоны изменения координат х и у будут удовлетворять условиям То есть точка с координатами х, у располагается на расстоянии х дюймов справа от оси у и на расстоянии у дюймов над осью х. Иначе говоря, начало О системы экранных координат располагается в нижнем левом углу экрана. Те читатели, которым это почему-либо не нравится, могут внести любые изменения в систему координат, особенно после изучения данной книги! Кроме того, в главе 2 будет рассмотрена возможность задания границ рисунка более элегантным способом.

Графическое изображение на рис. 1.1 состоит из 50 квадратов. Сначала вычерчивается квадрат затем на стороне выбирается точка А такая, что Аналогичным образом вычисляется положение точек на сторонах квадрата соответственно. После этого точкам присваиваются имена и процедура повторяется.

УПРАЖНЕНИЯ

(см. скан)

<< Предыдущий параграф Следующий параграф >>
Оглавление