|
Реферат: Ведение реляционной БД на яз. CLIPPER 5.02 (Программирование)
МОСКОВСКАЯ ГОСУДАРСТВЕННАЯ ТЕКСТИЛЬНАЯ АКАДЕМИЯ им. КОСЫГИНА
Кафедра ИТ и ВТ.
К У Р С О В А Я Р А Б О Т А
Тема : “Разработка програмного обеспечения, ведение базы данных и получение ведомости с частичными суммами.“
по курсу: “Алгоритмические языки и технология програмирования “
Выполнил: Пономарев А.Н. гр.42-96
Руководитель: доц. Стрельников Б.А. асс. Степанова О.П.
МОСКВА 1998 2. ЗАДАНИЕ:
ТЕМА КУРСОВОЙ РАБОТЫ: Реализация алгоритма обработки данных и ведения реляционной базы данных.
ИСХОДНЫЕ ДАННЫЕ: Индивидуальное задание с описанием базы данных и получаемой в результате ее обработки ведомости с частичными и полными суммами.
ПЕРЕЧЕНЬ ПОДЛЕЖАЩИХ РАЗРАБОТКЕ ВОПРОСОВ ( СОДЕРЖАНИЕ РАСЧЕТНО- ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ )
1. Разработать структуры файлов и создать макет базы данных.
2. Разработать алгоритм обработки данных для получения ведомости.
3. Составить и отладить программу получения ведомости.
4. Разраб. формы экранных кадров и меню для ведения базыданных.
5. Составить и отладить программу реализации экранного кадра для просмотра основных(ой) таблиц(ы).
6. Дополнить программу п.5 возможностью удаления и добавления строк в таблицу.
7. Дополнить программу п.5 возможностью изменения инф-ии в таблице.
8. Составить и отладить процедуры оперативного ведения справочников базы данных.
9. Разраб.единую систему меню для ведения базы данных и ее обработки с целью получения ведомости.
10. Разработать систему интерфейса пользователя (подсказки о клавишах, на которые предусмотрена реакция системы и помощь пользователю).
ПЕРЕЧЕНЬ ГРАФИЧЕСКОГО МАТЕРИАЛА
1. Структуры файлов базы данных и их заполнение для тестового примера.
2. Макеты экранных кадров и состав подсказок для пунктов ожидания ввода от пользователя.
3. Ведомость, получаемая в результате выполнения тестового примера.
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
Обеспечить модульную структуру программы. ( программа состоит из нескольких PRG-файлов, включая PRG-файл типовых утилит. Каждый PRG-файл состоит из функций или процедур, снабженных комментариями. )
ТЕХНИЧЕСКИЕ СРЕДСТВА: ПЭВМ IBM Система программирования Clipper 5.2
3. ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ.
Имеются файлы: АА - нормативы профилактики оборудования, ВВ - профилактики и СС - состав оборудования
АА: 1. Идентификатор типа станка ВВ: 1. Инвентарный номер станка 2. Наименование типа станка 2. Вид профилактики 3. Норма кол-ва дней между 3. Дата профилактики профилактиками 4. Идентификатор записи
СС: 1. Инвентарный номер 2. Идентификатор типа станка
Выявить все случаи превышения нормативных интервалов между профилактиками и вывести их в выводной файл DD: 1. Инв.№ 2. Фактическое кол-во дней между профилактиками 3. Нормативное кол-во дней 4. Иден-тор записи пред. проф-ки 5. Иден-тор записи след. проф-ки На принтер вывести ведомость, упорядоченную по убыванию кол-ва просроченных дней: Нарушения норм техобслуживания Инв.№ /Тип Дата/Вид пред.проф-ки Дата /Вид след.проф-ки Просрочено, дней Инв.№ /Тип Дата /Вид пред.проф-ки Дата /Вид след.проф-ки Просрочено, дней Инв.№ /Тип Дата /Вид пред.проф-ки Дата /Вид след.проф-ки Просрочено, дней . . . . . . . . . . Общее кол-во дней просрочки СУММА
4.Анализ обработки БД для её получения :
а) По какому файлу проводится главный цикл обработки ? Главный цикл обработки в подпрограмме vedom - (п.п., которая осущест- вляет выявление всех случаев превышения нормативных интервалов между профилактиками, вывод их в выводной файл “DD”, а также осуществляет выдачу ведомости на принтер) проводится по файлу bb.dbf .
б) Как он должен быть упорядочен ? Он должен быть упорядочен в хронологическом порядке. Пример: index on bb->invnom + dtoc(bb->dateprof) to bb0001 Справка: Синтаксис: INDEX ON TO INDEX - команда обработки базы данных, которая создает файлы, содержащие индексы базы данных на основе значения аргумента . При использовании индексного файла записи базы данных обрабатываются в последовательности, заданной ключевым выражением, однако физический порядок следования записей базы данных остается неизменным. INDEX обеспечивает последовательность записей, упорядоченную по значениям ключевого выражения. Для ключей типа CHARACTER - в соответствии со значением ASCII кода каждого символа внутри строки, для ключей типа NUMERIC - в соответствии с числовым порядком, для ключей типа дата - в хронологическом порядке и для логических - считается, что истина (.Т.) - более высокого порядка. Memo-поля не могут быть индексированы.
в) Применяются ли фильтры ? Хотя команда SET FILTER делает так, что файл в рабочей области
выглядит состоящим из подмножества записей, на самом деле последовательно обрабатываются все его записи. Фильтры не применяются, т.к время работы с фильтрованной и нефильтрованной рабочей областью оказывается одним и тем же.
г) Имеются ли связи ”хозяин-слуга” и по каким полям ? В подпрограмме vedom имеются связи. Пример: а) set relat to bb->invnom into cc Связь по полю “invnom”. б) set relat to cc->idst into aa additive Связь по полю “idst”. в) set relat to dd->invnom into cc additive Связь по полю “invnom”. ............................................................................ ................................................... 5.Структура dbf-файлов (имя, тип, формат, каждого поля ):
a) Структура файла aa.dbf :
IDST NAMEST NORMA 1 Строгальный 25 2 Сверлильный 15 3 Токарный 20 ........................................................................... ........................... Имя Тип Длина IDST Символ 3 NAMEST Символ 12 NORMA Число 3
б) Структура файла bb.dbf :
INVNOM VIDPROF DATEPROF IDZAP
24 Смазка 09-01-98 1 4 Смазка 09-01-98 2 231 Смазка 09-01-98 3 2 Смазка 09-01-98 4 626 Смазка 09-01-98 5 323 Смазка 09-01-98 6 626 Регулировка 01-02-98 7
323 Регулировка 28-01-98 8
2 Регулировка 29-01-98 9
231 Регулировка 28-01-98 10
4 Регулировка 19-01-98 11 24 Регулировка 18-01-98 12
626 Чистка 31-03-98 13 323 Чистка 15-04-98 14 2 Чистка 01-04-98 15 231 Чистка 20-03-98 16 4 Чистка 10-03-98 17 24 Чистка 02-04-98 18 ........................................................................... ........................... Имя Тип Длина INVNOM Символ 3 VIDPROF Символ 12 DATEPROF Дата 8 IDZAP Символ 3
в) Структура файла сс.dbf :
INVNOM IDST 323 1 626 1 4 2 231 3 24 2 2 3 ........................................................................... ........................... Имя Тип Длина INVNOM Символ 3 IDST Символ 3
г) Структура файла dd.dbf :
INVNOM FKDN NORMA IDZAPPP IDZAPSP
2 62 20 9 15 231 51 20 10 16 24 74 15 12 18 323 77 25 8 14 4 50 15 11 17 626 58 25 7 13
............................................................................ ......................... Имя Тип Длина INVNOM Символ 3 FKDN Число 3 NORMA Число 3 IDZAPPP Символ 3 IDZAPSP Символ 3 ............................................................................ .....................................................
6. Принципы подготовки данных для тестового примера и заполнения исходных данных.
Эти данные были выбраны произвольно - “из головы”: 1) Идентификатор типа станка 2) Инвентарный номер станка 3) Вид профилактики 4) Наименование типа станка
Идентификатор записи в файле bb.dbf заполнялся по убыванию (от 1 до 18), где 1- первая запись, а 18- последняя.
Норма кол-ва дней между профилактиками была выбрана произвольна.
Дата профилактики выбиралась так, чтобы норма кол-ва дней между профилактиками была превышена для всех видов профилактик. ............................................................................ ...................................................
7. Система меню.
а) Какие экранные кадры ?
Экранный кадр № 1:
Московская государственная текстильная академия ( МГТА )
БАЗА ДАННЫХ Нарушение норм техобслуживания:
Курсовая работа по курсу : "Алгоритмические языки обработки данных и технология программирования"
студента гр 42/96 Пономарёва А.Н.
*************************
Руководитель:
доц. Стрельников Б.А.
асс. Степанова О.П.
Сразу приступить к работе с Базой Данных Заново построить все индексы Базы Данных Провести компрессию Базы Данных
Выход из Базы Данных
Экранный кадр № 2:
Московская государственная текстильная академия ( МГТА )
БАЗА ДАННЫХ Нарушение норм техобслуживания:
Курсовая работа по курсу : "Алгоритмические языки обработки данных и технология программирования"
студента гр 42/96 Пономарёва А.Н.
*************************
Руководитель:
доц. Стрельников Б.А.
асс. Степанова О.П.
Выберите одну из следующих задач Ведение файла "Нормативы профилактики оборудования" Ведение файла "Профилактика" Получение ведомости нарушение норм техобслуживания Выход из Базы Данных
Экранный кадр № 3:
Нормативы профилактики оборудования:
Идент. типа станка Наименование типа станка Норма,дней -------------------------------------------------------------------------- ---------------- 1 ¦ Строгальный ¦ 25 2 ¦ Сверлильный ¦ 15 3 ¦ Токарный ¦ 20 ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ -------------------------------------------------------------------------- ----------------- Тип станка: Строгальный
(/ ( / ( / ( / ^( PgUp / PgDn / ^(/ Home / End - Перемещение курсора ¦ Esc - Возврат на шаг назад ¦F8 - Удалить строку Enter - Редактирование ¦ ¦F3 - Вставить строку
Экранный кадр № 4:
Профилактики:
Инв.№ станка Вид профилактики Дата профилактики -------------------------------------------------------------------------- -------------- 2 ¦ Смазка ¦ 01/09/98 2 ¦ Регулировка ¦ 01/29/98 2 ¦ Чистка ¦ 04/01/98 231 ¦ Смазка ¦ 01/09/98 231 ¦ Регулировка ¦ 01/28/98 231 ¦ Чистка ¦ 03/20/98 24 ¦ Смазка ¦ 01/09/98 24 ¦ Регулировка ¦ 01/18/98 24 ¦ Чистка ¦ 04/02/98 323 ¦ Смазка ¦ 01/09/98 323 ¦ Регулировка ¦ 01/28/98 323 ¦ Чистка ¦ 04/15/98 -------------------------------------------------------------------------- -------------- Инв.№ станка: 2 Вид профилактики: Смазка Дата профилактики: 01/09/98
(/ ( / ( / ( / ^( PgUp / PgDn / ^(/ Home / End - Перемещение курсора ¦ Esc - Возврат на шаг назад ¦F8 - Удалить строку Enter - Редактирование ¦ ¦F3 - Вставить строку
Экранный кадр № 5:
Таблица нарушение норм техобслуживания: ---------------------------------------------------------------------------- -------------------------------- ¦ Инв. ¦ Наименование ¦ Дата ¦ Вид предвор. ¦ Дата ¦ вид след. ¦Просроч.¦ ¦номер ¦ типа станка ¦ ¦ профилактики ¦ ¦ профилактики ¦ дней ¦ ¦--------------------------------------------------------------------------- ---------------------------------¦ ¦ 24 ¦ Сверлильный ¦01/18/98¦ Регулировка ¦04/02/98¦ Чистка ¦ 59 ¦ ¦ 323 ¦ Строгальный ¦01/28/98¦ Регулировка ¦04/15/98¦ Чистка ¦ 52 ¦ ¦ 2 ¦ Токарный ¦01/29/98¦ Регулировка ¦04/01/98¦ Чистка ¦ 42 ¦ ¦ 4 ¦ Сверлильный ¦01/19/98¦ Регулировка ¦03/10/98¦ Чистка ¦ 35 ¦ ¦ 626 ¦ Строгальный ¦02/01/98¦ Регулировка ¦03/31/98¦ Чистка ¦ 33 ¦ ¦ 231 ¦ Токарный ¦01/28/98¦ Регулировка ¦03/20/98¦ Чистка ¦ 31 ¦ ---------------------------------------------------------------------------- --------------------------------- Всего просроченно дней - 252
Экранный кадр № 6:
Московская государственная текстильная академия ( МГТА )
БАЗА ДАННЫХ Нарушение норм техобслуживания:
Курсовая работа по курсу : "Алгоритмические языки обработки данных и технология программирования"
------------------------------------------------------------------ ----------------а А.Н. ¦ Сохранить все внесенные изменения и продолжить ¦***** ¦ работу с Базой данных - т.е. сделать промежуточный SAVE ¦ ¦ или ¦ ¦ Завершить работу с базой данных с сохранением всех ¦.А. ¦ изменений ¦. ¦ Сохранить и продолжить Завершить работу ¦ ------------------------------------------------------------------ ---------------- Выберите одну из следующих задач Ведение файла "Нормативы профилактики оборудования" Ведение файла "Профилактика" Получение ведомости нарушение норм техобслуживания Выход из Базы Данных
б) Пункты меню, что в них делается ?
Меню № 1: 1) Сразу приступить к работе с Базой Данных 2) Заново построить все индексы Базы Данных 3) Провести компрессию Базы Данных 4) Выход из Базы Данных
При выборе п.1, если индексы уже имеются мы попадаем в меню № 2. При выборе п.2 заново происходит построение всех индексов Б.Д . При выборе п.3 производится компрессия (уплотнение) Б.Д . При выборе п.4 появляется горизонтальное подменю:
а) Сохранить и продолжить б) Завершить работу
П.а) Сохранить все внесенные изменения и продолжить П.б) Завершить работу с базой данных с сохранением всех изменений
Меню № 2: 1) Ведение файла "Нормативы профилактики оборудования" 2) Ведение файла "Профилактика" 3) Получение ведомости нарушение норм техобслуживания 4) Выход из Базы Данных При выборе п.1 мы попадаем в редактор файла aa.dbf - (“Нормативы
профилактики оборудования”), где мы можем его просматривать и редактировать.
При выборе п.2 мы попадаем в редактор файла bb.dbf - (“Профилактика”), где мы можем его просматривать и редактировать.
При выборе п.3 происходит выявление всех случаев превышения нормативных интервалов между профилактиками, вывод их в выводной файл “DD”, а также выдача ведомости на принтер.
При выборе п.4 выполняются действия аналогичные п.4 в меню № 1. ............................................................................ .....................................................
8. Ведение БД . Какими табл. представлено ведение БД, по какой табл. указывается текущая рабочая область, её слуги, колонки таблицы, набор клавиш на которые предусмотрена реакция системы.
Клавиши на которые реагирует система: (/ ( / ( / ( /; PgUp / PgDn; Home / End - Перемещение курсора Enter - Выбор задачи в меню и редактирование полей в редакторе Esc - Возврат на шаг назад. Отмена редактирования (без сохранения изменненого значения) F8 - Удалить строку F3 - Вставить строку F10 - Выход из задачи с сохранением всей информации или выход без сохранения информации
Таблицы ведения Б.Д.: Табл. №1
Нормативы профилактики оборудования: Идент. типа станка Наименование типа станка Норма, дней -------------------------------------------------------------------------- --------------------- ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ --------------------------------------------------------------------------- --------------------- Тип станка: Табл. №2
Профилактики: Инв.№ станка Вид профилактики Дата профилактики -------------------------------------------------------------------------- -------------------- ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ---------------------------------------------------------------------------- -------------------- Инв.№ станка: Вид профилактики: Дата профилактики:
............................................................................ .....................................................
9. Структура программы :
а) Содержимое rmk-файла “kursv.rmk”:
objs = main2,aa,util,bb
.prg.obj: CLIPPER $< /a/m/n
.obj.exe: RTLINK OUTPUT $* FI $(objs) /PLL:base52
main2.obj : main2.prg aa.obj : aa.prg util.obj : util.prg bb.obj : bb.prg
kurs_ok.exe : main2.obj aa.obj util.obj bb.obj
б) Имена и содержание prg-файлов. По каждой функции: имя, назначение, параметры, тип данных и смысл, возвращенное значение, рабочие перемен-ные и их назначение.
Программные файлы: 1) aa.prg В этой программе реализовано: 1. Создание TBrowse-объекта для просмотра-редактирования файла aa.dbf в окне.
2) bb.prg В этой программе реализовано: 1. Создание TBrowse-объекта для просмотра-редактирования файла bb.dbf в окне.
3) main2.prg В этой программе реализовано: 1.Организация меню. 2. Индексирование файлов. 3. Уплотнение файла . 4. Выявление всех случаев превышения нормативных интервалов между профилактиками, вывод их в выводной файл “DD”, а также выдача ведомости на принтер. 5. Вывод на экран информации о “горячих” клавишах.
4) util.prg Эта программа содержит набор стандартных утилит: 1. Сохранение экрана, восстановление экрана. 2. Перевод в верхний регистр как латиницы, так и кириллицы. 3. Координаты, сообщение, цвет. 4. Выход из задачи с сохранением всей информации - реакция на клавишу F10. 5. Подача звукового сигнала для сигнализации успешного выполнения поставленной задачи:
Описание основных подпрограмм: 1) п.п. постоения индексов: func db_index(prm) s_scr(24,0,25,79) CLOSE ALL SETCOLOR ("w/n") @ 24,0 CLEAR TO 25,79 @ 24,6 SAY "Ждите идет индексирование! " COLOR "w+*/n" use bb index on bb->invnom + dtoc(bb->dateprof) to bb0001 use aa index on aa->idst to aa0002 use cc index on cc->invnom to cc0003 use dd index on dd->(norma-fkdn) to dd0004 close all r_scr() return nil
2) п.п. открытия индексов: func db_open close all use aa index aa0002 use bb index bb0001 new use cc index cc0003 new use dd index dd0004 new return nil
3) п.п. уплотнения Б.Д. : FUNCTION db_compress() s_scr(24,0,25,79) CLOSE ALL SETCOLOR("w/n") @ 24,0 CLEAR TO 25,79 @ 24,6 SAY "Ждите идет уплотнение !" COLOR ("w+*/n") USE aa // уплотнение файла aa.dbf COPY TO work IF ERRORLEVEL() = 0 USE DELETE FILE aa.dbf RENAME work.dbf TO aa.dbf ENDIF USE bb // уплотнение файла bb.dbf COPY TO work IF ERRORLEVEL() = 0 USE DELETE FILE bb.dbf RENAME work.dbf TO bb.dbf ENDIF USE cc // уплотнение файла cc.dbf COPY TO work IF ERRORLEVEL() = 0 USE DELETE FILE cc.dbf RENAME work.dbf TO cc.dbf ENDIF USE dd // уплотнение файла dd.dbf COPY TO work IF ERRORLEVEL() = 0 USE DELETE FILE dd.dbf RENAME work.dbf TO dd.dbf ENDIF CLOSE ALL r_scr() RETURN NIL
4) п.п. выдачи информации о клавишах, на которые реагирует система ”Help”: PROCEDURE hlp(callpnt,prm) LOCAL retcol,crow,ccol IF prm = NIL prm := .F. ENDIF crow = ROW() ccol = COL() retcol = SETCOLOR("w/n") @ 22,0 CLEAR TO 24,79 IF callpnt = "GET" // исправленный HLP для GET 26.09.96 @ 22,0 SAY "Enter/" + CHR(24) + '/' + CHR(25) + '/PgUp/PgDn' ; + " -Завершить редактирование с сохранением измененного значения" @ 22,0 SAY "Enter/"+ CHR(24) + '/' + CHR(25) + '/PgUp/PgDn' COLOR "r+/n" @ 23,1 SAY CHR(26) + ' / ' + CHR(27) + ' / ^' + CHR(26) ; + ' / ^' + CHR(27) + ' / Home / End - Перемещение курсора' @ 23,1 SAY CHR(26) + ' / ' + CHR(27) + ' / ^' + CHR(26) ; + ' / ^' + CHR(27) + ' / Home / End' COLOR "r+/n" @ 24,1 SAY 'Esc - Отменить редактирование ' ; + '( без сохранения измененного значения )' @ 24,1 SAY "Esc" COLOR "r+/n" ENDIF IF callpnt="AAED" .OR. callpnt="BBED" SET COLOR TO ("w/n") @ 22,1 SAY chr(24) + " / " + chr(25) + " / " + CHR(26) + ' / ' ; + CHR(27) + ' / ^' + CHR(26) + " PgUp / PgDn " ; + ' / ^' + CHR(27) + '/ Home / End - Перемещение курсора' @ 24,0 SAY 'Enter - Редактирование ' @ 23,23 TO 24,23 DOUBLE @ 23,25 SAY 'Esc - Возврат на шаг назад ' COLOR "w/n" @ 23,25 SAY 'Esc' COLOR "r+/n" @ 23,54 TO 24,54 DOUBLE @ 23,55 SAY 'F8 - Удалить строку ' @ 24,55 SAY 'F3 - Вставить строку ' SET COLOR TO ("r+/n") @ 22,1 SAY chr(24) + " / " + chr(25) + " / " + CHR(26) + ' / ' ; + CHR(27) + ' / ^' + CHR(26) + " PgUp / PgDn " ; + ' / ^' + CHR(27) + '/ Home / End ' @ 24,0 SAY 'Enter' @ 23,55 SAY 'F8' @ 24,55 SAY 'F3' ENDIF IF callpnt="CCED" .OR. callpnt="DDED" SET COLOR TO ("w/n") @ 22,1 SAY chr(24) + " / " + chr(25) + " / " + CHR(26) + ' / ' ; + CHR(27) + ' / ^' + CHR(26) + " PgUp / PgDn " ; + ' / ^' + CHR(27) + '/ Home / End - Перемещение курсора' @ 24,0 SAY 'Enter - Редактирование ' @ 23,23 TO 24,23 DOUBLE @ 23,25 SAY 'Esc - Возврат на шаг назад ' COLOR "w/n" @ 23,25 SAY 'Esc' COLOR "r+/n" @ 24,25 SAY '^Enter - Выбор значения ' COLOR "w/n" @ 24,25 SAY '^Enter' COLOR "r+/n" @ 23,54 TO 24,54 DOUBLE @ 23,55 SAY 'F8 - Удалить строку ' @ 24,55 SAY 'F3 - Вставить строку ' SET COLOR TO ("r+/n") @ 22,1 SAY chr(24) + " / " + chr(25) + " / " + CHR(26) + ' / ' ; + CHR(27) + ' / ^' + CHR(26) + " PgUp / PgDn " ; + ' / ^' + CHR(27) + '/ Home / End ' @ 24,0 SAY 'Enter' @ 23,55 SAY 'F8' @ 24,55 SAY 'F3' ENDIF SET COLOR TO (retcol) SETPOS(crow,ccol) RETURN
5) п.п. выявления всех случаев превышения нормативных интервалов между профилактиками, вывода их в выводной файл “DD”, а также выдачи ведомости на принтер: func vedom local tinvnom,sitog,tdata,tidzap,tidst,idpop set printer on select dd zap lin:=space(17)+"Таблица нарушение норм техобслуживания:" ? lin select bb set relat to bb->invnom into cc set relat to cc->idst into aa additive go top sitog:=0 do while .not. eof() tinvnom:=bb->invnom tdata:=bb->dateprof tidzap:=bb->idzap tidst:=cc->idst skip if(bb->invnom=tinvnom).and.(bb->dateprof-tdata>aa->norma) select dd append blank replace dd->invnom with tinvnom replace dd->fkdn with bb->dateprof-tdata replace dd->norma with aa->norma replace dd->idzappp with tidzap replace dd->idzapsp with bb->idzap sitog:=sitog+(dd->fkdn-dd->norma) select bb endif enddo lin:="+--------------------------------------------------------------------- --------+" ? lin lin:="¦ Инв.¦ Наименование ¦ Дата ¦ Вид предвор. ¦ Дата ¦ вид след. ¦Просроч.¦" ? lin lin:="¦номер¦ типа станка ¦ ¦ профилактики ¦ ¦ профилактики ¦ дней ¦" ? lin lin:="¦-----+--------------+--------+--------------+--------+-------------- +--------¦" ? lin select dd set relat to dd->invnom into cc additive go top do while .not. eof() tinvnom:=dd->invnom idpop:=dd->idzappp lin:="¦ "+dd->invnom+" ¦ " select bb go top do while .not. eof() if(tinvnom=bb->invnom).and.(idpop=bb->idzap) lin:=lin+aa->namest+" ¦"+dtoc(bb->dateprof)+"¦ "+bb->vidprof endif skip enddo select dd idpop:=dd->idzapsp select bb go top do while .not. eof() if(tinvnom=bb->invnom).and.(idpop=bb->idzap) lin:=lin+" ¦"+dtoc(bb->dateprof)+"¦ "+bb->vidprof+"¦ " endif skip enddo select dd lin:=lin+str(dd->fkdn-dd->norma,4)+" ¦" ? lin skip enddo lin:="+--------------------------------------------------------------------- --------+" ? lin set color to w+/b lin:=" Всего просроченно дней -"+str(sitog,5) ? lin set printer off sound() inkey(0) return nil
6) п.п. подачи звукового сигнала для сигнализации успешного выполнения поставленной задачи: func sound tone(300,1) tone(100,1) tone(300,1) tone(100,1) return nil
7) п.п. сохранения зкрана: FUNC s_scr(t,l,b,r) IF t = NIL t := 0 ENDIF IF l = NIL l := 0 ENDIF IF b = NIL b := MAXROW() ENDIF IF r = NIL r := MAXCOL() ENDIF AADD( wind[1], t ) AADD( wind[2], l ) AADD( wind[3], b ) AADD( wind[4], r ) AADD( wind[5], SAVESCREEN(t,l,b,r) ) AADD( pos[1], ROW() ) AADD( pos[2], COL() ) AADD( colr, SETCOLOR() ) AADD( curs, SETCURSOR() ) RETURN .T.
8) п.п. восстановления зкрана: FUNC r_scr() LOCAL ln ln := LEN(wind[1]) IF ln == 0 @ 24,0 SAY ' Ошибка - стек для восстановления параметров пуст ' INKEY(0) @ 24,0 ENDIF RESTSCREEN(wind[1,ln], wind[2,ln], wind[3,ln], wind[4,ln], wind[5,ln] ) ASIZE(wind[1],ln-1) ASIZE(wind[2],ln-1) ASIZE(wind[3],ln-1) ASIZE(wind[4],ln-1) ASIZE(wind[5],ln-1) SETPOS( pos[1,ln], pos[2,ln] ) ASIZE(pos[1],ln-1) ASIZE(pos[2],ln-1) SETCOLOR(colr[ln]) ASIZE(colr,ln-1) SETCURSOR(curs[ln]) ASIZE(curs,ln-1) RETURN .T.
9) п.п. определения - нажата ли клавиша типового метода, если да - то возвращает блок кода с соответствующим методом, если нет - то возвращает NIL. Параметр функции - INKEY-код нажатой клавиши. FUNC basemet(cod) LOCAL ret , ei , i LOCAL crsm:={ ; {K_DOWN , {|o| o:down() } } ; , {K_UP , {|o| o:up() } } ; , {K_PGDN , {|o| o:pagedown() } } ; , {K_PGUP , {|o| o:pageup() } } ; , {K_CTRL_PGDN , {|o| o:gobottom() } } ; , {K_CTRL_PGUP , {|o| o:gotop() } } ; , {K_RIGHT , {|o| o:right() } } ; , {K_LEFT , {|o| o:left() } } ; , {K_CTRL_RIGHT , {|o| o:panright() } } ; , {K_CTRL_LEFT , {|o| o:panleft() } } ; , {K_END , {|o| o:end() } } ; , {K_HOME , {|o| o:home() } } ; , {K_CTRL_END , {|o| o:panend() } } ; , {K_CTRL_HOME , {|o| o:panhome() } } } i := ASCAN( crsm, {|ei| cod = ei[1] } ) IF i 0 ret := crsm[i,2] ELSE ret := NIL ENDIF RETURN ret
10) п.п. переключения режима вставка/замена и вида курсора: PROCEDURE Repl_Ins() IF READINSERT() READINSERT(.F.) SETCURSOR(SC_INSERT) ELSE READINSERT(.T.) SETCURSOR(SC_NORMAL) ENDIF RETURN
11) п.п. перевода в верхний регистр латиницы и кириллицы: FUNC UpperC(prm) LOCAL n , i , smb , cs n := LEN( prm ) FOR i = 1 TO n smb := SUBSTR( prm , i , 1 ) cs := ASC( smb ) DO CASE CASE cs >= 97 .AND. cs = 160 .AND. cs = 224 .AND. cs 80 RETURN ENDIF IF x=NIL // Центр по X x := (80-ml)/2 ENDIF IF y=NIL // Центр по Y y := 24/2 - 1 ENDIF IF color NIL c := SETCOLOR(color) @ y,x SAY m SETCOLOR(c) ELSE @ y,x SAY m ENDIF RETURN
14) п.п. создания TBrowse-объекта для просмотра-редактирования файла aa.dbf в окне t,l,b,r : FUNCTION aaCr(t,l,b,r) LOCAL brws,coln,cblk,chdr brws := TBrowseDb(t,l,b,r) cblk := {|| " " + aa->idst } chdr := "Идент. типа станка" coln := TBColumnNew(chdr,cblk) coln:width := 19 brws:AddColumn(coln) cblk := {|| " " + aa->namest} chdr := " Наименование типа станка" coln := TBColumnNew(chdr,cblk) coln:width := 35 brws:AddColumn(coln) cblk := {|| STR( aa->norma,7) } chdr := " Норма,дней" coln := TBColumnNew(chdr,cblk) coln:width := 12 brws:AddColumn(coln) brws:colsep := CHR(186) brws:headsep := CHR(205) brws:colorspec := "w+/b,gr+/rb" RETURN brws
15) п.п. просмотра файла aa.dbf с обработкой нажимаемых клавиш и вызовом соответствующих методов или пользовательских функций: FUNCTION aaEd(brws) LOCAL ret_fl,sel,otb , w LOCAL cc,rr,nrc:=0,i LOCAL ret:=NIL LOCAL t := brws:nTop , l := brws:nLeft , b := brws:nBottom , r := brws:nRight LOCAL t_ := 5 , l_ := 6 , b_ := 15 , r_ := 74 s_scr() s_r_s() SETCOLOR( "N/W" ) CLS SETCOLOR( "gr+/b,w+/gr") hlp("AAED") SELECT aa SET ORDER TO 2 @ t-2 , l-1 CLEAR TO b+2 , r+1 @ b+1, l TO b+1, r ret_fl := .F. DO WHILE .NOT. ret_fl ** оптимизированная с использованием буфера клавиатуры стабилизация DO WHILE ( NEXTKEY() == 0 ) .AND. ( .NOT. brws:stabilize() ) ENDDO IF ( NEXTKEY() == 0 ) .AND. ( RECNO() nrc) nrc := RECNO() rr := ROW() cc := COL() SETCOLOR("bg+/b") @ t-2 , l+1 SAY " Нормативы профилактики оборудования:" @ b+2 , l+1 SAY " Тип станка: " @ b+2 , COL()+1 SAY aa->namest COLOR "w+/b" SETPOS(rr,cc) ENDIF SETCOLOR("gr+/rb") ** ожидаем нажатия клавиши nkey := Inkey(0) // если нажата клавиша типового метода - вызовем его blk := basemet( nKey ) IF blk NIL EVAL( blk , brws ) ELSE DO CASE CASE ( bHotkey := SETKEY( nKey ) ) NIL EVAL( bHotkey , PROCNAME() , PROCLINE() , READVAR() ) CASE ( nKey = K_F8 ) DELETE // потрогаем файловый указатель, если // возвращаетя EOF() - .T. после Down-Up, // значит файл пуст SKIP SKIP -1 IF RECNO() = RECCOUNT()+1 ret_fl := .T. // завершение просмотра ENDIF brws:RefreshAll() nrc := 0 CASE nKey = K_ESC ret_fl := .T. // завершение просмотра CASE ( nKey = K_ENTER ) // Редактирование текущего элемента данных aaGet(brws ; , " Редактирование файла aa.dbf" ) nrc := 0 // обновить верхнюю строку CASE nKey == K_F3 APPEND BLANK brws:RefreshAll() ENDCASE ENDIF ENDDO SET RELAT TO s_r_s(.T.) r_scr() RETURN ret
16) п.п. выполнения GET в текущей колонке файла aa.dbf: PROCEDURE aaGet( brws , z0 ) LOCAL r , c , w , w2 , otb LOCAL retcurs,retexit // форма курсора и режим выхода из READ LOCAL retins, retcol // режим вставка-замена в READ LOCAL indch := .F. // флаг изменений значений полей, входящих в // индекснове выражение (тогда нужно REFRESHALL(), // а не REFRESHCURRENT() ) LOCAL col r := ROW() c := COL() // Проверка обновления экрана, корректности базы и т.д. ForceStable(brws) // Установка клавиш Up-Arrow и Down-Arrow как клавиш выхода из // команды READ retexit := READEXIT(.T.) // Установка клавиши INS для переключения // режима вставка/замена // и соответствующего изменения вида курсора retins := SetKey( K_INS, {|| Repl_Ins()} ) // эквивалентно Set Key K_INS To Procedure Repl_Ins // Установка вида курсора по текущему состоянию режима retcurs := SetCursor( IF(ReadInsert(), SC_NORMAL, SC_INSERT ) ) s_scr() retcol := SETCOLOR("w+/g") @ brws:nTop-3,0 @ brws:nTop-3,0 SAY z0 hlp("GET") SETCOLOR("gr+/n,w+/g") indch := .F. DO CASE CASE brws:colpos = 1 w := aa->idst @ r,c+2 GET w READ IF .NOT.( LASTKEY() = K_ESC ).OR.( aa->idst == w ) REPLACE aa->idst WITH w indch := .T. ENDIF CASE brws:colpos = 2 n := aa->namest @ r,c+2 GET n READ IF .NOT.( LASTKEY() = K_ESC ).OR.( aa->namest == n ) REPLACE aa->namest WITH n ENDIF CASE brws:colpos = 3 w := aa->norma @ r,c+1 GET w READ IF .NOT.( ( LASTKEY() = K_ESC ) .OR. ( aa->norma = w ) ) REPLACE aa->norma WITH w ENDIF ENDCASE SETCOLOR(retcol) r_scr() SETPOS(r,c) IF indch brws:RefreshAll() ELSE brws:RefreshCurrent() // Обеспечить перерисовку текущей строки, ENDIF // поскольку изменялся элемент данных // Восстановление формы курсора и режима выхода из READ по стрелкам // и процедуры по клавише K_INS SetCursor(retcurs) READEXIT(retexit) SetKey(K_INS, retIns) // Проверка требования ухода с текущей записи после GET nKey := LASTKEY() IF nKey == K_UP .OR. nKey == K_DOWN .OR. ; nKey == K_PGUP .OR. nKey == K_PGDN // управление курсором -- переход к другой записи KEYBOARD( CHR(nKey) ) ENDIF RETURN
Примечание: В отчёте не описаны п.п.: а) для создания TBrowse-объекта для просмотра-редактирования файла bb.dbf в окне t,l,b,r ; б) для просмотра файла bb.dbf с обработкой нажимаемых клавиш и вызовом соответствующих методов или пользовательских функций; в) для выполнения GET в текущей колонке файла bb.dbf: Т.к. эти подпрограммы практически аналогичны подпрограммам для файла aa.dbf !!! ............................................................................ .....................................................
10. Результаты тестового примера:
а) Содержимое выводного файла dd.dbf:
INVNOM FKDN NORMA IDZAPPP IDZAPSP
2 62 20 9 15 231 51 20 10 16 24 74 15 12 18 323 77 25 8 14 4 50 15 11 17 626 58 25 7 13
б) Содержимое файла (print.prn), выводимого на принтер:
Таблица нарушение норм техобслуживания: ---------------------------------------------------------------------------- ------------------------------------- ¦ Инв. ¦ Наименование ¦ Дата ¦ Вид предвор. ¦ Дата ¦ вид след. ¦ Просроч.¦ ¦номер ¦ типа станка ¦ ¦ профилактики ¦ ¦ профилактики ¦ дней ¦ ¦--------------------------------------------------------------------------- -------------------------------------¦ ¦ 24 ¦ Сверлильный ¦01/18/98 ¦ Регулировка ¦04/02/98 ¦ Чистка ¦ 59 ¦ ¦ 323 ¦ Строгальный ¦01/28/98 ¦ Регулировка ¦04/15/98 ¦ Чистка ¦ 52 ¦ ¦ 2 ¦ Токарный ¦01/29/98 ¦ Регулировка ¦04/01/98 ¦ Чистка ¦ 42 ¦ ¦ 4 ¦ Сверлильный ¦01/19/98 ¦ Регулировка ¦03/10/98 ¦ Чистка ¦ 35 ¦ ¦ 626 ¦ Строгальный ¦02/01/98 ¦ Регулировка ¦03/31/98 ¦ Чистка ¦ 33 ¦ ¦ 231 ¦ Токарный ¦01/28/98 ¦ Регулировка ¦03/20/98 ¦ Чистка ¦ 31 ¦ ---------------------------------------------------------------------------- ------------------------------------- Всего просроченно дней - 252
Реферат на тему: Векторная графика
Содержание:
Введение 2
1. Программы векторной графики 4
1.1. Corel Draw 8-9 6 1.2. Adobe Illustrator 6 7 1.3. Micrografx Designer 7 8 1.4. Macromedia FreeHand 7 10 1.5. Corel Xara 1.5 11 1.6. Canvas 5 12 1.7. Fractal Design Expression 14 1.8. Сравнения характеристик программ 15
2. Форматы файлов компьютерной графики 19
3. Основной принцип построения графических объектов 22
4. Применение векторной графики 23
5. Векторная графика в интернете 25
Заключение 28
Список используемых источников информации 30
ВВЕДЕНИЕ
Почти с момента создания ЭВМ появилась и компьютерная графика, которая сейчас считается неотъемлемой частью мировой технологии. По началу это была лишь векторная графика – построение изображения с помощью так называемых «векторов» - функций, которые позволяют вычислить положение точки на экране или бумаге. Например, функция, графиком которой является круг, прямая линия или другие более сложные кривые. Совокупность таких «векторов» и есть векторное изображения. С развитием компьютерной техники и технологий появилось множество способов постройки графических объектов. Но для начала, определимся с термином "графический объект". Это либо само графическое изображение или его часть. В зависимости от видов компьютерной графики под этим термином понимаются как и пиксели или спрайты (в растровой графике), так и векторные объекты, такие как круг, квадрат, линия, кривая и т.д. (в векторной графике). Для дальнейшего рассмотрения проблемы постройки объектов с помощью векторной графики, необходимо уяснить разницу между двумя основными видами компьютерной графики - растровой и векторной.
Векторная графика Векторная графика описывает изображения с использованием прямых и изогнутых линий, называемых векторами, а также параметров, описывающих цвета и расположение. Например, изображение древесного листа описывается точками, через которые проходит линия, создавая тем самым контур листа. Цвет листа задается цветом контура и области внутри этого контура. При редактировании элементов векторной графики Вы изменяете параметры прямых и изогнутых линий, описывающих форму этих элементов. Вы можете переносить элементы, менять их размер, форму и цвет, но это не отразится на качестве их визуального представления. Векторная графика не зависит от разрешения, т.е. может быть показана в разнообразных выходных устройствах с различным разрешением без потери качества. Векторное представление заключается в описании элементов изображения математическими кривыми с указанием их цветов и заполняемости (вспомните, круг и окружность - разные фигуры). Красный эллипс на белом фоне будет описан всего двумя математическими формулами - прямоугольника и эллипса соответствующих цветов, размеров и местоположения. Очевидно, такое описание займет значительно меньше места, чем в первом случае. Еще одно преимущество - качественное масштабирование в любую сторону. Увеличение или уменьшение объектов производится увеличением или уменьшением соответствующих коэффициентов в математических формулах. К сожалению векторный формат становится невыгодным при передаче изображений с большим количеством оттенков или мелких деталей (например, фотографий). Ведь каждый мельчайший блик в этом случае будет представляться не совокупностью одноцветных точек, а сложнейшей математической формулой или совокупностью графических примитивов, каждый из которых, является формулой. Это приводит к утяжелению файла. Кроме того, перевод изображения из растрового в векторный формат (например, программой Adobe Strime Line или Corel OCR-TRACE) приводит к наследованию последним невозможности корректного масштабирования в большую сторону. От увеличения линейных размеров количество деталей или оттенков на единицу площади больше не становится. Это ограничение накладывается разрешением вводных устройств (сканеров, цифровых фотокамер и др.).
Растровая графика Растровая графика описывает изображения с использованием цветных точек, называемых пикселями, расположенных на сетке. Например, изображение древесного листа описывается конкретным расположением и цветом каждой точки сетки, что создает изображение примерно также, как в мозаике. При редактировании растровой графики Вы редактируете пиксели, а не линии. Растровая графика зависит от разрешения, поскольку информация, описывающая изображение, прикреплена к сетке определенного размера. При редактировании растровой графики, качество ее представления может измениться. В частности, изменение размеров растровой графики может привести к "разлохмачиванию" краев изображения, поскольку пиксели будут перераспределяться на сетке. Вывод растровой графики на устройства с более низким разрешением, чем разрешение самого изображения, понизит его качество. Основой растрового представления графики является пиксель (точка) с указанием ее цвета. При описании, например, красного эллипса на белом фоне приходится указывать цвет каждой точки как эллипса, так и фона. Изображение представляется в виде большого количества точек – чем их больше, тем визуально качественнее изображение и больше размер файла. Т.е. одна и даже картинка может быть представлена с лучшим или худшим качеством в соответствии с количеством точек на единицу длины – разрешением (обычно, точек на дюйм – dpi или пикселей на дюйм – ppi). Кроме того, качество характеризуется еще и количеством цветов и оттенков, которые может принимать каждая точка изображения. Чем большим количеством оттенков характеризуется изображения, тем большее количество разрядов требуется для их описания. Красный может быть цветом номер 001, а может и – 00000001. Таким образом, чем качественнее изображение, тем больше размер файла. Растровое представление обычно используют для изображений фотографического типа с большим количеством деталей или оттенков. К сожалению, масштабирование таких картинок в любую сторону обычно ухудшает качество. При уменьшении количества точек теряются мелкие детали и деформируются надписи (правда, это может быть не так заметно при уменьшении визуальных размеров самой картинки – т.е. сохранении разрешения). Добавление пикселей приводит к ухудшению резкости и яркости изображения, т.к. новым точкам приходится давать оттенки, средние между двумя и более граничащими цветами. Распространены форматы .tif, .gif, .jpg, .png, .bmp, .pcx и др.
Таким образом, выбор растрового или векторного формата зависит от целей и задач работы с изображением. Если нужна фотографическая точность цветопередачи, то предпочтительнее растр. Логотипы, схемы, элементы оформления удобнее представлять в векторном формате. Понятно, что и в растровом и в векторном представлении графика (как и текст) выводятся на экран монитора или печатное устройство в виде совокупности точек. В Интернете графика представляется в одном из растровых форматов, понимаемых броузерами без установки дополнительных модулей – GIF, JPG, PNG. Без дополнительных плагинов (дополнений) наиболее распространенные броузеры понимают только растровые форматы – .gif, .jpg и .png (последний пока мало распространен). На первый взгляд, использование векторных редакторов становится неактуальным. Однако большинство таких редакторов обеспечивают экспорт в .gif или .jpg с выбираемым Вами разрешением. А рисовать начинающим художникам проще именно в векторных средах – если рука дрогнула и линия пошла не туда, получившийся элемент легко редактируется. При рисование в растровом режиме Вы рискуете непоправимо испортить фон. Из-за описанных выше особенностей представления изображения, для каждого типа приходится использовать отдельный графический редактор – растровый или векторный. Разумеется, у них есть общие черты – возможность открывать и сохранять файлы в различных форматах, использование инструментов с одинаковыми названиями (карандаш, перо и т.д.) или функциями (выделение, перемещение, масштабирование и т.д.), выбирать нужный цвет или оттенок... Однако принципы реализации процессов рисования и редактирования различны и обусловлены природой соответствующего формата. Так, если в растровых редакторах говорят о выделении объекта, то имеют в виду совокупность точек в виде области сложной формы. Процесс выделения очень часто является трудоемкой и кропотливой работой. При перемещении такого выделения появляется«дырка». В векторном же редакторе объект представляет совокупность графических примитивов и для его выделения достаточно выбрать мышкой каждый из них. А если эти примитивы были сгруппированы соответствующей командой, то достаточно «щелкнуть» один раз в любой из точек сгруппированного объекта. Перемещение выделенного объекта обнажает нижележащие элементы. Тем не менее, существует тенденция к сближению. Большинство современных векторных редакторов способны использовать растровые картинки в качестве фона, а то и переводить в векторный формат части изображения встроенными средствами (трассировка). Причем обычно имеются средства редактирования загруженного фонового изображения хотя бы на уровне различных встроенных или устанавливаемых фильтров. 8-я версия Illustrator'a способна загружать .psd-файлы Photoshop'a и использовать каждый из полученных слоев. Кроме того, для использования тех же фильтров, может осуществляться непосредственный перевод сформированного векторного изображения в растровый формат и дальнейшее использование как нередактируемого растрового элемента. Причем, все это помимо обычно имеющихся конвертеров из векторного формата в растровый с получением соответствующего файла. Некоторые растровые редакторы способны грузить один из векторных форматов (обычно .wmf) в качестве фона или сразу переводить их в растр с возможностью непосредственного редактирования.
1. ПРОГРАММЫ ВЕКТОРНОЙ ГРАФИКИ
В настоящее время создано множество пакетов иллюстративной графики, которые содержат простые в применении, развитые и мощные инструментальные средства векторной графики, предназначенной как для подготовки материалов к печати, так и для создания страниц в интернете. Для создания графического объекта потребуется программа иллюстративной векторной графики. Качество и полезность средств векторной графики определяются главным образом возможностями масштабирования. Пакеты векторной или иллюстративной графики всегда основывались на объектно-ориентированном подходе, позволяющем рисовать контуры объектов, а затем закрашивать их или заполнять узорами. Вы можете очень точно воспроизводить эти контуры, задавая любой размер, поскольку они формируются при помощи математической модели из точек и кривых, а не как растровые изображения - в виде сетки, заполненной прямоугольными пикселями. К числу новых возможностей, обнаруженных нами в этой категории изделий, относится многоцветная градиентная закраска. Такие примитивы, как многоугольники, звезды и спирали, стали обычными атрибутами подобных пакетов. Связанные цвета позволяют заменить красный цвет розы на желтый, изменив только базовый цвет; все связанные оттенки изменятся автоматически. Многослойные интерактивные цветные "диапозитивы" обеспечивают ранее недостижимую глубину и вы можете преобразовывать векторные изображения в растровые в рамках векторного графического файла. Если вчерашние пакеты векторной графики позволяли только помещать растровое изображение в ваш файл, то с помощью современных программ можно встраивать представленные в растровой форме изображения, изменять их размеры и даже накладывать специальные эффекты и маски. Это облегчает процесс получения окончательного изображения средствами многослойной графики - объединением векторных и растровых файлов необходимым, для создания логотипов, печатных рекламных объявлений и картинок для Web. Из всех новшеств наибольший интерес представляют фирменные внешние модули (plug-ins) Web, обогащающие Сеть средствами векторной графики и навигации. Файл векторной графики неизмеримо меньше растрового файла для такого же изображения и это позволяет увеличивать масштаб фрагментов изображения до 25 тыс. процентов. Теперь появилась возможность назначать URL (унифицированный указатель ресурса) любому объекту. Принципы, лежащие в основе последних пакетов, полностью меняют представления о векторной графике. CorelXara 1.5 реализует качественно новый подход к визуализации, располагает потрясающими средствами создания выходных файлов .GIF и JPEG и феноменально быстрым внешним модулем браузера для работы с векторной графикой. Пакет Expression 1.0 фирмы Fractal Design позволяет строить контуры из других сложных векторных графических изображений, предоставляя в распоряжение пользователя бесконечное разнообразие визуальных возможностей, недостижимое с помощью других программ. В отличие от предназначенного для начинающих пользователей программного обеспечения настольных издательских систем или программ редактирования фотоизображений, где, как правило, содержатся наиболее часто используемые средства редактирования, графические пакеты для новичков обычно ориентированы на решение конкретных задач, например построение диаграмм или техническое черчение. Приобрести навыки свободного рисования кривых Безье трудно даже для профессионала; не менее сложно освоить и основные принципы машинного черчения, например изображение разрезов и сечений. Кроме того, многие начинающие пользователи не ощущают различий между растровой и векторной графикой и могут не знать, в каких случаях какими пакетами пользоваться. По этим причинам начинающие должны соизмерять свои задачи с возможностями программы и переходить к полнофункциональному пакету рисования, только когда будут готовы к этому. В большинстве случаев для создания простых иллюстраций начинающим достаточно уметь работать с теми программными средствами, которые, возможно, у них уже имеются. Комплекты программ Microsoft, Corel и Lotus содержат инструменты рисования в своих модулях текстового процессора и презентационной графики, а также библиотеки клипартов. В Microsoft Office 97 предусмотрена новая линейка заданий, содержащая множество вариантов выбора для создани рисунков, логотипов и текста при работе с разными приложениями. Кроме того, с помощью функций AutoShape можно создавать большое число стандартную форм и даже символов для построения диаграмм (которые могут отбрасывать тени или даже получаться с помощью "экструзии" и благодаря этому приобретать объемность), а галерея WordArt предоставляет интересные и цветные стили текста, которыми можно пользоваться для заголовков или ярлыков. Для задач технического характера обратитим внимание на такие программы построения диаграмм, как FlowCharter 7 фирмы Micrografx (http://www.micrografx.com) или Visio Professional 4.5 фирмы Visio Corp. (http://www.visio.com). Если же начать работать в области САПР, то существует несколько вполне доступных по ценам и возможностям пакетов, в том числе AutoCAD LT фирмы Autodesk (http://www.autodesk.com) или Design CAD 97 фирмы ViaGrafx (http://www.viagrafx.com). Чтобы подготовить чертежи для небольших строительных проектов, например реконструкции этапа дома или модернизации кухни, можно воспользоваться пакетами Planix и Draftix фирмы SoftDesk (http://www.softdesk.com), Visual Home фирмы Books That Work (www.btw.com) или 3D Home Architect, Edition 2 фирмы Broderbund Software (http://www.broderbund.com/3dhome). Далее следует обзор наиболее известных редакторов векторной графики.
1.1. Corel Draw 8-9
Пакет CorelDraw всегда производит сильное впечатлени. В комплект фирма Corel включила множество программ, в том числе Corel Photo-Paint. Новый пакет располагает бесспорно самым мощным инструментарием среди всех программ обзора, а при этом по сравнению с предыдущей версией интерфейс стал проще, а инструментальные средства рисования и редактирования узлов - более гибкими. Однако что касается новые функций, в частности подготовки публикаций для Web, то здесь CorelDraw уступает CorelXara. Работа CorelDraw с цветами CMYK оставляет желать лучшего. Цвета файлов GIF и JPEG заметно отличались от цветов, выводимых для пробного отпечатка Matchprint, в то время как пакет FreeHand воспроизводил одинаковые цвета на экране, в файлах Web и на обоих принтерах. Без затруднений С помощью инструментального средства сглаженной экструзии нам без труда удалось построить трехмерное изображение гитары из двумерного контура. Мы назначили интерактивные "двухточечные" градиентные диапозитивы растровым изображениям и простым векторным объектам; для каждой из двух указанных точек задается степень прозрачности в процентах. Эта технология была заимствована из CorelXara 1.0, однако CorelDraw не позволяет указывать более двух значений прозрачности для каждого объекта или группы, в то время как с помощью CorelXara 1.5 можно задавать в два раза больше значений прозрачности. Художественные возможности оформления текста в CorelDraw безупречны, а принимаемые по умолчанию параметры для межбуквенных интервалов при размещении текста вдоль кривой не требуют настройки, исключающей наложение букв, - в отличие от Canvas и FreeHand. Инструмент "лупа" не имеет себе равных - он позволяет получить множество специальных эффектов, в том числе возможность увеличения только фрагмента изображения и автоматической настройки цветов текста в зависимости от цвета фона. Можно вырезать изображения, накладывать цветные фильтры и придавали растровым изображениям вид изогнутой страницы, используя двух- и трехмерные эффе | |