Система Вектор диалог и методы - Вернуться на главную

advertisement
В. П. Болотов
Ю.И.Роньшин
ВЕКТОР:
ДИАЛОГ И МЕТОДЫ
Программа для работы с векторной графикой
в скриптах и приложениях
Электронная версия
Владивосток
2004
1
УДК 629.12.004.67:658.5(075)
В.П.Болотов, Ю.И.Роньшин. ВЕКТОР: диалог и методы
Программа для работы с векторной графикой в скриптах и приложениях
МГУ им. адм. Г.И. Невельского. Владивосток, 2004. —128 с.
Книга описывает систему «Вектор», предназначенную для решения разнообразных задач в инженерной и художественной практике. Авторы описывают работу
системы, и демонстрирует ее использование при автоматизированном обучении в
таких традиционно сложных дисциплинах как начертательная и аналитическая геометрии, векторно-графический анализ, основы художественного творчества, основы
художественного конструирования судов. В научной и практической деятельности
использование системы показано в задачах: анализа многофакторных и многомерных процессов, оптимизации данных как единой системы эксплуатации и восстановления судовых деталей, вычисление технико-экономических показателей динамики и снижения издержек производства — диаграмма Парето расходов и себестоимости, тепловой расчет судового котла, расчет трансформатора и т.д.
Кроме того, система «Вектор» ориентирует пользователя и предоставляет
ему возможность в Интернете самому строить приложения с использованием
HTML, JavaScript и методов по принципу: пользователь — клиент — сервер. В приложениях дан курс «JavaScript »
На прилагаемом CD вы найдете систему «Вектор», скрипты-методы и просто
набор скриптов, обеспечивающих решения многих задач из самых различных сфер
человеческой деятельности.
ISBN 5 — 7107 — 0996 — 4
© Болотов Валерий Павлович, 2004
© Роньшин Юрий Иванович, 2004
2
I. ОСНОВНЫЕ ПРИНЦИПЫ
ОБЪЕКТИВНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ В СИСТЕМЕ ВЕКТОР
Система Вектор написана на принципах объектно-ориентированного
программирования (ООП).
Основные идеи ООП следующие:
— программа представляет модель некоторого реального процесса,
части реального мира;
— модель реального мира или его части может быть описана как совокупность взаимодействующих между собой объектов;
— объект описывается набором параметров, значения которых определяют состояние объекта, и набором операций (действий), которые может выполнять объект;
— взаимодействие между объектами осуществляется посылкой специальных сообщений от одного объекта к другому. Сообщение, полученное
объектом, может потребовать выполнения определенных действий, например,
изменения состояния объекта;
— объекты, описанные одним и тем же набором параметров и способные выполнять один и тот же набор действий, представляют класс однотипных объектов.
ООП предполагает, что при разработке программы должны быть определены классы используемых в программе объектов и построены их описания, затем созданы экземпляры необходимых объектов и определено взаимодействие между ними.
Например, кнопка на Интернет-странице является объектом. Программист может манипулировать им, используя ограниченный набор методов, который одинаков для таких кнопок.
Возникает вопрос в том, что библиотека различных классов (методов)
может непомерно расти, что снижает их оперативность применения, и главное, делает систему тяжеловесной и громоздкой в использовании. Однако
обычно методов не так много, в системе Вектор их 170. Однако эффект от использования объектных библиотек значительно превосходит затраты на их
хранение. Кроме того, методы можно классифицировать по признакам.
Следует сказать, что авторы не претендуют на исчерпывающий обзор
ООП и тем более его исчерпывающее применение. Однако шаг в этом направлении сделан, а тандем — система Вектор со своими методами и диалогом и Интернет-технологии с языками GavaScript и VBS — могут дать пользователю то, о чем он давно мечтал: оперативное создание программ (скриптов), отвечающих только его требованиям, вкусу и эмоциям. Кроме того, система Вектор — это готовый инструмент для творчества: непосредственно на
экране видеть мир, совершая самые разнообразные перевоплощения. Диалогсистема обеспечивает также и элементы конструкторской деятельности в моделировании 3D-объектов. А скрипты больше относятся к тренажерной среде
обучения и пониманию проблем инженерной и творческой деятельности.
3
II. ЗНАКОМСТВО С СИСТЕМОЙ «ВЕКТОР»
Система «Вектор» (в дальнейшем просто Вектор) построена на платформе Windows, поэтому интерфейс во многом такой же, как в общеизвестных системах Microsoft Word: Photoshop, CorelDraw, Wordpad. Последнюю
можно запускать непосредственно из Вектора и использовать как редактор
макрокоманд и скриптов. CorelDraw — с его мощным интерфейсом двумерной векторной графики — является фактически базой для построения двумерной графики (обмен в формате .dxf).
Рис. 2.1. Внешний вид окна системы Вектор
1. Основные типы графики
Векторная графика является основной для системы. Растровая используется в двух случая — для построения «Фон», который выступает как образ
для превращения его в векторный формат, и для создания объект «Картина».
2. Основные типы работы
Вектор может работать в мультидокументном и мультиоконном (для
каждого документа несколько окон) режимах.
Основные типы работы: диалоговый и файловый из макрокоманд и из скриптов.
Диалоговый — команды меню и диалоговые боксы Вектора.
Файловый — через макрокоманды (МК), написанных на VBS с расширением .vbs и JavaScript с расширением .js.
Из скриптов — из программ, написанных на HTML, VBS и JavaScript.
4
Вызов файла или МК осуществляется:
1. «Открыть» файл — открывается новое окно, в котором выполняются
все действия файла.
2. «Макрокоманда» — все действия МК выполняются в ранее открытом окне.
Действия, которые выполняются пользователем в диалоге, можно «Сохранить» в файле (МК) с расширением .vbs (делается автоматически) и .js
(указывается явно), а потом автоматически можно повторить все действия,
вызвав этот файл или отредактировав его, добавив в него, например, организовать циклическую работу той или иной команды.
Через команду «Макрокоманда» из командной строки можно организовать анимацию над созданными на экране объектами.
3. Объекты
Объекты в системе Вектор делятся на две категории:
— объекты «Вектор»;
— объекты автоматизации (Automation).
Объекты Вектора — это геометрические 3D-объекты, которые можно
создавать, модифицировать, преобразовывать, отображать как единое целое и
пустой объект.
Объекты автоматизации используются в макрокомандах и скриптах для
представления объектов Вектора. Для каждого типа объекта Вектора (кроме
пустого) есть соответствующий ему тип объекта автоматизации.
Объекты Вектора могут быть простыми или составными. Составной
объект — это контейнер (дерево), содержащий другие простые и /или составные объекты. Операции над корнем дерева (например, преобразование или
окраска) распространяются на все объекты, которые он содержит. Группой
объектов называется дерево, корнем которого является пустой объект.
4. Библиотека методов
Средство, автоматизирующее работу в системе Вектор, это на основе
методов написание МК и скриптов. Методы — это мини-программы, которые
могут работать и с другими языками и приложениями, в частности JavaScript
и HTML.
5. Импорт/Экспорт
Импортирование готовой векторной графики из CorelDraw или
AutoCad в формате .dxf и из Photoshop (или из других растровых систем) в
формате .jpg и обратно, экспорт векторного формата из системы Вектор в
CorelDraw и сохранение в .bmp в растровом виде любой части экрана позволяет использовать для подготовки проектов (чертежей, 3D-объектов, картин,
анимации) всю гамму, имеющегося программного обеспечения.
5
6. VBScript и JavaScript
Для создания макрокоманд и скриптов используются языки VBScript и
JavaScript, которыми не надо специально заниматься — он легко осваивается
по мере написания МК. Вот написать самостоятельно скрипт, где используется «джентльменский» набор из JavaScript, HTML и Perl, а в случае выхода в
систему еще и методы написать программу уже не просто. Однако после написания с десяток таких скриптов, дальше писать по образцу проще. А при
работе в системе Вектор есть полный арсенал возможностей JavaScript и методов системы Вектор.
7. WordPad
Текстовый редактор WordPad выведен в основную строку панели. Он
служит для редактирования файлов и макрокоманд. При отладке в этом редакторе, правда, есть некоторые неудобства: он не нумерует строки, которые
отмечает при отладке VBS. Поэтому чаще приходится пользоваться редактором Fara.
8. Установка программы
Перейдем от теоретической части к работе с программой Вектор. Первое — нужно установить систему. Система Вектор использует DirectX9 SDK.
Поэтому существуют некоторые требования.
Во-первых, для работы с системой необходим режим экрана — 32
бит/пиксель.
Во-вторых, на компьютере должны быть установлены драйвера
DirectX9 — их можно свободно скачать из Интернета по адресу:
http://www.microsoft.com.
В третьих, нужно скачать тест проверки (поставляется вместе с драйверами) и проверить, все ли у вас корректно.
И, наконец, скачать саму систему Вектор: http://vm.msun.ru/Cin++.htm
(объем в упакованном виде около 2 Mb) Далее распакуйте в какой-либо директории и запустите setup.exe.
Условие поставки системы Вектор.
Пока система находится в опытной эксплуатации, она распространяется свободно — через Интернет (http://vm.msun.ru/Cin++.htm) и на CD в качестве приложения к данной книге. В дальнейшем могут появиться коммерческие варианты.
9. Интерфейс пользователя
Как было отмечено выше, система создана на платформе Windows, поэтому интерфейс является стандартным.
6
Рис.2.2. Контекстное меню для объектов из структуры и
квадратичная поверхность
Рабочая зона системы
Вектор разбита на два окна.
Слева — структура (дерево)
объектов, справа — главное рабочее окно для визуализации.
Структура объектов сейчас используется во многих профессиональных системах, например
таких, как SolidWorks, Delcam,
Cimatron.
Структуру можно выключить и использовать все поле рабочего окна.
Чтобы «достучаться» в
структуре до объекта, нужно
щелкнуть правой кнопкой
мыши по его имени. В этом
случае появляется контекстное меню (рис. 2.2).
На рис. 2.2 — показан
список контекстного меню.
Среди них такие известные команды:
Цвет — перезадание цвета линий и контура.
Цвет заливки — задание или перезадание заливки полилиний, поверхностей и тел.
Толщина линий — с помощью этой команды, кроме толщины линий,
можно изменить размеры квадрата для объекта «точка».
Вкл. /Выкл. — с помощью этой команды объект можно сделать видимым или невидимым.
Операции «Удаление объекта», традиционно используемой в других
графических системах, в системе Вектор нет. Кроме того, нет и операции
«Отменить» последнее или предпоследнее действие, как это активно используется в CorelDraw. Остальные команды в структуре Вектор понятны по названию.
Инструменты рисования
Инструмента рисования, как это принято в системе CorelDraw, в системе Вектор — нет. Просто задания тех или иных графических объектов сгруппированы по классам: линии, поверхности, картина, тела. При входе в тот или
иной класс и соответствующие диалоги задания и настройки объект или задается по умолчанию, или его нужно задать через вспомогательные объекты из
структуры.
7
Главное меню
Рис. 2.3. Панель главного меню
Команды системы Вектор доступны из главного меню, которое представляет строку (при сжатии число строк увеличивается). В главном меню
находятся вложенные меню, которые, в свою очередь, раскрываются, отображая на экране меню подкатегорий.
Стандартная панель инструментов
Рис. 2.4. Стандартная панель инструментов
Под главным меню находится стандартная панель инструментов. В нее
выведены команды.
— «Создать окно». После щелчка по ней появится новое рабочее окно.
— «Файл» (открыть документ). Через нее вы можете войти в ту или
иную директорию и открыть файл с расширением .vbs или .js.
— «Сохранить документ». Все действия, которые выполнены при
открытии и файла, а также действия текущего сеанса запоминаются, и их
можно сохранить в файле с расширением .vbs. Потом этот файл можно опять
вызвать, повторив действия прошлого сеанса. Документ с расширением .vbs
является основным для команд «Открыть документ, Сохранить документ».
Документ на языке JS с расширением .js можно только открыть.
Команды: «Вырезать», «Копировать в буфер», «Вставить из буфера» —
пока в работе.
Иконка со знаком вопрос сообщает краткую информацию о системе
Вектор и ее разработчиках.
— «Курсор». Это автоматическое
отслеживание положения курсора мыши на рабочем поле экрана. По умолчанию курсор выключен. Чтобы его включить, в меню «Вид» у команды «Коор.
курсора» поставьте флажок.
Структура
Рабочее окно разделено на две части: слева — структура создаваемых
объектов; а справа — собственно окно, в котором выполняются все действия.
Структура по желанию может быть выключена, при этом увеличивается изобразительная площадь объектов.
8
Строка состояний
Строка состояния — это интерактивная информация о командах, объектах и макете документа. Ее можно убрать.
Развертывание и свертывание окон
Как и в любой программе для Windows, рабочее окно в системе Вектор
можно развернуть /свернуть, либо установить какое-либо промежуточное значение его размеров, выбрав одну из пиктограмм окна в верхнем правом углу
документа. Чтобы закрыть окно, достаточно щелкнуть по кнопке .
Команды для расположения нескольких окон на экране
При выполнении команды < Окно → Каскадом > все открытые на текущий момент окна документов будут одновременно выведены на экран одно
над другим. Любое из этих окон можно вывести на передний план, щелкнув
по его заголовку.
Есть возможность и мозаичного размещения окон на экране:
< Окно → Мозаика >.
Контекстное меню
Используется, главным образом, в доступе к объектам из структуры
при задании глубины точек и скорости удаления/приближения перспективного изображения. Контекстное меню открывается щелчком правой кнопки
мыши по имени объекта и обеспечивает быстрый доступ к командам: редактировать, преобразовать, дублировать, переименовать, цвет линий, цвет заливки, толщина, включить /выключить текущий объект, включить/выключить
каркас текущего объекта, передвинуть объект по структуре в начало или наверх, составить ту или иную композицию, создать анимацию. Также имеются
команды редактирования и создания объектов общего характера.
Активное окно
Чтобы перейти из структуры в рабочее окно, нужно щелкнуть левой
кнопкой мыши по полю рабочего окна. Если оно не активно, то вы не имеете
доступа ко многим командам панели «Вид», к таким как: задание фона, выбор
освещения, системы координат, координаты курсора, задания каркаса.
Активный объект
Активный объект выделяется в структуре жирным шрифтом. Некоторые команды в главном меню выполняются только для активного объекта,
поэтому надо уметь делать его активным. Это выполняется двойным щелчком в структуре по имени объекта или группе объектов.
При импортировании из .dxf формата линия (линии) автоматически заносятся в группу. Поэтому, чтобы получить доступ к линии (линиям) для использования в качестве образующих той или иной поверхности, ее/их следует
перетащить мышью из структуры.
9
III. КОМАНДЫ ГЛАВНОГО МЕНЮ СИСТЕМЫ
1. ФАЙЛ
Рис. 3.1. Спускающееся меню группы
команд «Файл»
Это наиболее стандартная группа
команд в приложениях Windows: «Новый», «Открыть», «Закрыть», «Сохранить», «Сохранить как», «Выход», хотя в
каждом редакторе встречаются и свои
специфические команды: надо знать, что
открыть и как. Какой файл отрыть, с каким расширением сохранить, система подскажет сама. Вектор работает с файлами
расширением .vbs и .js.
Команда «Выход» обеспечивает выход из системы. Чтобы закрыть документ,
надо щелкнуть по знаку , расположенному в верхнем правом углу окна или выполнить команду «Закрыть».
Макрокоманда...
Данная команда в панели «Файл» обеспечивает вызов макрокоманд для
текущего документа. Макрокоманды могут быть построены так, что они будут воздействовать на объекты, которые построены в данном документе. В
разделе «Готовые макрокоманды» многие МК действуют именно таким образом. Вызов МК осуществляется: открыть файл из директории, поддиректории, сети и т.п.
Импорт…
Импорт осуществляется для двух форматов: .dxf и .x.
dxf — это AutoCad и CorelDraw.
x — формат DirectX для представления объектов Mesh.
Экспорт...
Экспорт осуществляется для двух форматов: .dxf и .rlf.
Формат .rlf зарезервирован для передачи в систему CG (под DOS), где
3D-объекты моделируются на основе теоретико-множественных операций:
объединить, отнять, пересечь. Это мощный инструмент трехмерной графики.
10
2. ПРАВКА
На этой панели активными командами являются: «Объект...», «Удалить все объекты», «Создать группу» и «Случ. цвет».
Объект…
Рис. 3.2. Панель команд «Правка»
Данная команда редактирует объект.
При ее выполнении вы попадете в меню
задания параметров того объекта, который
активен. Пользователь чаще всего выходит
на редактирование из структуры, поэтому
надо знать, что нужный объект активный
(имя объекта выделено жирным шрифтом).
Удалить все объекты
Команда без параметров. Она удаляет все объекты из структуры.
Создать группу
Из структуры через контекстное меню (щелкнуть правой кнопкой мыши по имени объекта или группы) можно выполнить значительное количество команд, которых нет в других панелях. Команды можно выполнять для
объекта, для объекта в группе и для всей группы.
Заполнить группу можно вручную: сначала в меню «Правка» вы создаете группу, а затем перетаскиваете в нее имена объектов.
Иногда приходится, наоборот, из группы вытаскивать объекты. Выполняется это в случае импортирования линий и использования их в качестве
образующих для поверхностей и полиповерхностей.
Случ. цвет
Команда «Случ. цвет» (при поставленном флажке) означает, что цвет и
заливка выбирается случайным образом для линий и фигур, которые находятся в группе.
Для отдельных объектов выбор цвета происходит через стандартную
палитру цветов.
11
3. ВИД
Вид (View) — традиционное управление видами и
вспомогательный сервис.
Панель инструментов
Команда включает (флажок) или выключает (без
флажка) стандартную панель
инструментов.
Строка состояния
Строка состояний включает (флажок) и выключает самую нижнюю строку рабочего окна.
Структура
Рис. 3.3. Спускающаяся панель меню «Вид»
Если в этой команде стоит
флажок, то структура включена и находится на рабочем
поле слева.
Камера…
Открывает диалоговый бокс «Камера» (рис. 3.4).
Рис. 3.4.
12
Разберем представленные команды.
«Стандартные СК» (система координат)
Рис. 3.5
Стандартные системы координат — это автоматический вид на сцену (объекты) в том или
ином направлении:
XY — вид на плоскость экрана. Этот вид
можно было бы назвать главный вид, хотя в черчении это будет вид сверху.
XZ — вид в направлении к плоскости XZ. В системе координат экрана — это вид снизу, соответствует подходу в черчении и начертательной
геометрии.
YZ — вид в направлении к плоскости YZ. В системе координат экрана — вид слева. Так же как в черчении и начертательной геометрии.
В системе Вектор объекты привязаны к мировой системе координат
(МСК) x, y, z.
«Перспективная проекция», «Расстояние до экрана»
Рис. 3.6
Перспектива, или перспективная проекция — это не преобразования объекта, а согласно перспективным правилам, преобразования изображения.
Так, например, если мы приближаемся к объекту, то он увеличивается;
удаляемся от него — уменьшается.
Перспектива задается двумя параметрами: флажком, означающим, что
это перспектива, и расстоянием до экрана.
«Расстояние до экрана» задает фокусное расстояние объектива камеры.
Применение перспективы возможно для стандартных проекций, комплексного чертежа (отдельно для проекций), стандартных аксонометрических
проекций и проекций, получаемых через <ArcBall>.
На рисунке 3.7 показан каркас параллелепипеда в перспективной проекции с расстоянием до
экрана равным 50. В параллельной
проекции видом параллелепипеда
будет обычный квадрат.
Рис. 3.7. Перспектива
Чтобы увеличить угол видимости внутри комнаты-параллелепипеда,
нужно приблизиться к объекту.
Наиболее впечатляющие эффекты перспективных сокращений можно
получить с помощью ракурсных сокращений (см. < Преобразования → Ракурсные >), причем не к одной точке схода, а к двум или трем. На рисунке
справа показано ракурсное преобразование параллелепипеда к трем точкам
схода, которые находятся на осях x, y, z на расстояниях 10, 10, -10.
13
Растяжение /сжатие
Это масштаб изображения. Он масштабирует изображение равномерно
по всем осям.
Поворот
Здесь для наблюдателя как бы происходит
вращение объекта вокруг той или иной оси. На
самом же деле наблюдатель сам вращается вокруг сцены, которая задается глубиной. Вращение при этом может происходить как в мировой
системе координат, так и в экранной — флажок
включен.
Рис. 3.8
Центры местной и экранной систем координат
Координаты МСК и ЭСК можно задавать как с клавиатуры, так и при помощи мыши. В последнем случае указателем мыши надо щелкнуть, например, по фразе «Начало
Рис. 3.9
МСК», — указатель перепрыгнет на рабочее
поле в точку начала МСК.
Не отжимая кнопку мыши, объект (объекты) можно как бы двигать по
полю. Чтобы двигать сцену вглубь или на себя нужно, когда указатель перепрыгнет на поле, щелкнуть правой кнопкой мыши и, не отпуская ее, нажать
Ctrl или Shift. А чтобы настроить скорость движения — щелкнуть правой
кнопкой мыши, по словам «Начало МСК» или «Центр экрана». Такая процедура возможна во всех случаях, когда задается третья координата. Аналогичные действия выполняются при задании «Центра экрана» (центра ЭСК).
Запись траектории
Данный инструмент — это создание последовательных картинок при том или ином
преобразовании сцены. Это может быть просто
Рис. 3.10
перемещение объектов по экрану, вращение
через <ArcBall>, движение вглубь или вперед.
Настройка на запись: установить флажок в окошке «Запись траектории» и задать параметр «Расстояние между точками траектории», в зависимости, от которого будет записываться в память в формате .bmp. какое-то число
растровых картин вашего рабочего экрана.
Чтобы подтвердить запись, нужно сценарий сеанса сохранить в формате .vbs («Сохранить», см. основную панель «Файл»). Почистив файл от лишних действий, увеличив шаг или, наоборот, уменьшив, можно повтор всех
преобразований превратить в динамику движения.
Для начинающего пользователя этот инструмент труден — требуется
редактирование полученного файла. Расстояние между точками траектории
не совсем всегда пригодно для анимации — много лишних картинок и т.д.
Поэтому проще использовать команду «Анимация» из контекстного меню
структуры, где можно задать динамику как для одного объекта, так и для
группы объектов, объединив их.
14
«ArcBall»
ArcBall — мощный инструмент быстрого вращения
сцены, объектов, группы объектов. Фактически он делает ненужными или почти ненужными такие функРис. 3.11
ции, как: ортогональные проекции, аксонометрия,
комплексный чертеж и т.д.
С помощью ArcBall можно за считанные секунды просмотреть все вышеперечисленные случаи. И только когда нужен именно комплексный чертеж
или стандартная аксонометрия приходится обращаться к стандартным проекциям.
«Cancel»
Можно было бы не заострять внимание на этой общеизвестной команде, однако в «Преобразованиях сцены» она играет особую роль. Используя
Cancel можно выйти из окна, сохранив первоначальный вид сцены.
«OK», «Автоотрис.», «Применить»
Рис. 3.12
Автоотрис. — автоматическая отрисовка. Если она
включена, то можно проследить за своими действиями.
Применить — сохраняет какое-либо преобразование,
после чего можно дальше работать в этом окне.
А если с полученным результатом хотите выйти, нажмите ОК.
Комплексный чертеж, Оси координат, Коор. курсора, Сетка
Рис. 3.13
Оси координат наглядно показывают, где находится начало координат на той или иной проекции, а
также положительное направление осей.
Слева внизу (см. рис. 3.14): проекция XY. Совпадает с экранной системой координат; положительное
направление оси x — слева направо, z — направлено к
нам.
Слева вверху: проекция XZ. Направление оси x, как и на проекции XY,
слева направо; ось y направлена к нам.
Справа вверху: проекция на YZ. Положительное направление ось y —
влево, ось x направлена от нас.
Справа внизу: стандартная аксонометрическая проекция — изометрия.
Оси расположены под углом 120 градусов. Ось z занимает вертикальное положение, ось х — слева, а ось y — справа.
Координаты курсора — координаты курсора. Данная команда обеспечивает включение/выключение панели отслеживания координат указателя
мыши на рабочем поле, в частности, на рабочих полях каждой четверти.
15
Чтобы переключить курсор с одной проекции на другую нужно: сначала дважды щелкнуть мышью (правая кнопка) по новой проекции, затем войти
в панель «Вид» и подтвердить «Коор. курсора».
Сетка. Это вспомогательное средство для отрисовки фигур. С ее помощью легко сохранить связи и размеры на проекциях комплексного чертежа. Сетку при этом нельзя масштабировать или сдвигать.
Рис. 3.14
Освещение...
В открывающемся
окне «Освещение» перечислены все параметры,
которыми может оперировать пользователь при
освещении объектов. На
практике чаще всего
пользователь увеличивает долю рассеянного света и изменяет координату
z источника света.
Рис. 3.15
16
Фон
Фон является важной командой для перехода в
меню открытия растровых картин с последующем
преобразованием фона в барельеф или в картину.
Цвет...
Рис. 3.16
Цвет в системе Вектор — стандартная процедура, такая же, как во многих редакторах.
Открыть…
Открывает растровые изображения с расширениями .jpg, .bmp.
Может возникнуть вопрос: какого размера следует открывать картинку? Если вы хотите перевести ее в векторный формат (барельеф), то достаточно размера картинки 100 х 100 пикселей. Фон — во все рабочее поле —
можно использовать, но обработка их замедленная.
Удалить
Команда без параметров — удаляет фон.
Резюме
Итак, закончено описание команд панели «Вид». Какие-то команды
здесь понятны и просты, что-то, например, в Системе коор..., количество команд перенасыщено.
При недостаточной памяти компьютера фон-картина может быть не
видна, однако при сканировании, распознавание фона выполняется.
17
4. ЛИНИИ
Инструментов рисования как, например, в CorelDraw, Векторе нет.
Графические объекты распределены по классам: линии, поверхности, картины, тела. И задаются они в настройках соответствующих панелей по умолчанию или же через вспомогательные линии и фигуры в структуре.
Рис. 3.17
Линии могут быть пространственными и плоскими. К плоским линиям
относятся синусоида и кулачок.
Отрезок, дуга, окружность, Безье, квадратичная, Лагранжа через 4
точки — линии понятны из названия.
Полилиния — это линия, состоящая из отрезков. В диалоге задания
полилинии нет. Обычно одна или группа полилиний импортируются в формате .dxf из CorelDraw или AutoCad или же формируются в МК через метод.
При импортировании линия автоматически помещается в группу, поэтому,
чтобы применить ее в качестве образующей, например, при создании поверхности вращения, с помощью мыши ее нужно вытащить.
Полилинию можно задать из различных линий. Для этого необходимо
сделать ее активной — щелкнуть по имени два раза, а затем выполнить команду «Линия → полилиния» и, задав требуемое количество отрезков, на которое разбиваем линию, получить полилинию.
18
Худож. полилиния...
Художественная полилиния или группа полилиний — это полилиния (группа), выбранная из структуры и преобразованная по принципу: пройти столько-то шагов вперед, вернуться, на столько-то шагов назад; подобно
тому, как при рисовании черкает художник. Задание числа шагов вперед и назад зависит от того, на сколько отрезков разбита линия.
Рис. 3.18. Окружность и синусоида преобразованные в полилинии, а затем —
в художественные линии
Медитация...
Медитация — художественные преобразования
полилинии/группы полилиний в динамике.
Параметры настройки показаны на панели:
Масштаб — надо задать число, до которого изменяется масштаб линия/группа за один цикл. Аналогично для параметра Мах угол.
Последовательные преобразования можно выводить в
файлы с расширением .bmp (поставить флажок напротив команды Вывод в файл).
Задержка — это скорость вывода изображений
на экран (число кадров в секунду). Параметр определяется сложностью рисунка и возможностью компьютера.
Рис. 3.19
19
Сглаженная полилиния...
Это довольно мощный инструмент сглаживания линий (рис. 3.20).
При сглаживании задаются:
1) полилиния или группа: выделить (щелчок мышью) в структуре нужную линию или ее дубликат, например для того, чтобы сохранить оригинал;
2) указать тип сглаживания;
3) установить параметры управления (например, при 0,41 будет сглаживание дугами окружностей);
4) радиус задается для сглаживания дугами окружностей заданного радиуса.
Рис. 3.20. Сглаживание «квадратичное» при параметре сглаживания 0,5
Сглаженную линию можно редактировать — менять тип и параметры
сглаживания. Для этого достаточно войти в меню «Сглаженная полилиния»,
указать в структуре линию и, задав новые параметры, изменить ее.
Рис. 3.21. Преобразование сглаженной линии в художественную
Для того, чтобы с этой линией выполнить
художественные преобразования, ее необходимо преобразовать в полилинию. При этом в
структуре появится еще одна полилиния (ненужные можно выключить).
Проекция на поверхность вращения
В меню Проекция на поверхность вращения группу полилиний можно поместить на поверхность вращения. Для этого необходимо указать поверхность вращения и группу (рис. 3.23).
Проекция может быть параллельной или центральной (рис. 3.22).
Рис. 3.22
20
Рис. 3.23
Проекция на XY поверхность
Проекции полилинии или группы полилиний можно выполнить на
173-и аналитически однозначных по отношению к плоскости xy поверхностей. Кроме того, барельеф, полученный при распознавании фотографий,
также можно отобразить на XY-поверхности.
Отражение группу полилиний, можно просмотреть в динамике, получая самые неожиданные перевоплощения, которые можно сохранить в .bmp
форматах, а затем сделать анимационный ролик (подборку таких экспозиций
см. на сайте: http://vm.msun.ru в разделе «Выставки»).
Фон полилинии
Рис. 3.24
Это команда преобразования растровых фотографий в
3D векторный вид.
Через <Вид → Фон → Открыть> можно ввести растровую картинку, например, фотографию индийского гуру
Шри Чинмоя.
Далее — Фон → полилинии... — открывается окно:
Преобразование фон → полилиния (рис. 3.25), в котором
задаются параметры:
По Х и Y — количество пропускаемых пикселей по х
и по y;
Max высота для белого — максимальная высота для белого (если нет
флажка, то берется зарезервированная высота для черного);
Диапазон цвета От и До — происходит выход на стандартную цветовую палитру.
21
Рис. 3.25
Задавая
диапазон
цвета,
можно векторную картинку, состоящую из полилиний, задать ее в
цветовой гамме. Картинка состоит
из полилиний, повернув которые,
например, через <ArcBall>, можно
увидеть трехмерный их рельеф.
Рис. 3.26
Удалить точки...
Команда «Удаление точек» относится к редактированию барельефа, но может применяться и для любой
трехмерной 3D-полилинии.
После настройки параметров: удаления точек в
диапазоне от 0 до 2 с учетом максимальной высоты барельефа 4 см; выбора группы из структуры — получили
изображение (рис. 3.28).
На рисунке справа диапазон удаления увеличен до 3,5 см.
Можно удалять точки фона и, наоборот, фон оставить.
Рис. 3.27
Рис. 3.28
22
Удалить отрезки...
Командная строка «Удалить отрезки» из панели
«Линии» также относится к барельефам.
Что такое «Оставить» и «Удалить» отрезки?
При распознавании растровой картинки каждая
пиксельная строка заменяется полилинией, вот в ней и
далее во всех полилиниях удаляются отрезки с заданным
промежутком.
Рис. 3.29
Рис. 3.30
Линия → полилиния...
В этой команде любую линию (группу линий) можно заменить полилинией
(группой полилиний), обеспечив тем самым тот арсенал возможностей, которые
предоставляются для полилиний. Например: сделать полилинию художественной, отображать на поверхности, выполнять конформные преобразования и т.д.
Здесь нужно помнить: перед тем, как линию или группу преобразовать
в полилинию (группу полилиний), нужно сделать ее активной, т.е. выделить
щелчком мыши.
Рис. 3.31. На рисунке показана панель перезадания линии полилинией.
В структуре видно, какой объект активен.
23
Линия с отрезками...
Рис. 3.32. Меню «Линия с отрезками»
Перечислим параметры, которые можно задавать при построении линии с отрезками.
Рис. 3.33
Длина отрезков к линии
может иметь переменную величину и изменяться — равномерно или случайно (флажок).
Уже при этой одной функции с переменным параметром и шагом t можно творить чудеса.
Далее направление отрезков может быть по касательной, по нормали, с постоянным углом наклона и с
поворотом.
По касательной и нормали — понятно из названия.
Постоянное — это направление отрезков к линии, под постоянным заданным углом.
Рис. 3.34
24
Рис. 3.35
При включении С поворотом активизируется
окна Случайным и Углы до, с помощью которых
можно задать углы направления. При этом изменяться
они могут и случайно.
Линия, для построения линии с отрезками, выбирается из местной структуры, поместить ее окно «Линия».
Количество выводимых отрезков на линию регулируется параметром «Шаг по t». t, равное 0,1 — дают 10 отрезков; 0,01 — 100 и т.д.
На одной и той же линии
можно строить разные варианты
линий с отрезками, а затем, поместив их в группу (надо перед этим
создать пустую группу), случайным
или неслучайным образом можно
менять цвет отрезков к линии.
Рис. 3.36
Примеры композиций линии с отрезками
Рис. 3.37
Рис. 3.40
Рис. 3.38
Рис. 3.41
25
Рис. 3.39
Рис. 3.42
Рис. 3.43
Рис. 3.44
И все же, перед тем как закончить, вернемся к заданию простых линий — отрезка, окружности, кривой Безье, квадратичной, кубической Лагранжа через 4 точки, синусоиды, кулачка.
Отрезок...
Координаты начала и
конца отрезка можно задавать
как цифрами, так и курсором
через левую кнопку мыши.
Отрезок при входе в панель задается координатами
(0, 0, 0) — (1, 1, 0).
Рис. 3.45
При их изменении автоматически будет меняться и линия.
Редактирование с помощью мыши: щелкнуть левой кнопкой по слову
«Начало», после чего курсор перескочит на начало отрезка, и, не отжимая
кнопу, двигать начальную точку до нужного положения. Аналогично задается
и конец отрезка.
Есть возможность с помощью клавиш управлять глубиной (координатой z) начала и конца отрезка.
Для этого нужно курсор
подвести к конечным точкам
отрезка и щелкнуть правой
кнопкой мыши — появится
окно.
Щелкнуть по «Скорость
по z» — раскроется еще одно
Рис. 3.46
окно.
Здесь можно задать скорость регулирования изменения координаты точки по z начала или конца отрезка. Для этого надо щелкнуть
по словам «Начало» или «Конец» и, нажав
<Ctrl> или <Shift>, двигать координату z по
минусу или плюсу.
26
Рис. 3.47
На самом деле все эти манипуляции с координатой z мало используются на практике — если необходимо изменить z, быстрее задать ее вручную.
Для редактирования отрезка из структуры объектов нужно щелкнуть
правой кнопкой мыши по названию и войти в команду «Редактирование» —
откроется панель «Отрезок», где можете заново повторить все действия, но с
уже заданным отрезком.
Дуга...
В окне «Дуга» двигать
окружность можно через ее
центр, аналогично тому, как
это делалось для отрезка.
Для этого: щелкнуть
правой кнопкой по слову
«Центр», после чего курсор
перескочит на поле в центр
Рис. 3.48
дуги (окружности).
И далее, не отпуская кнопку мыши, перемещать центр вместе с дугой в
нужное место.
Остальные параметры понятны по их геометрическому смыслу. При
этом «Радиус min» будет вертикальным, а «Радиус max» — горизонтальным.
Окружность...
Данная команда задания
окружности гораздо проще.
Как ее двигать, задавать
координаты см. «Дуга...».
Рис. 3.49
Безье...
Линия Безье является кубической и строится по двум точкам начала и конца; характерным
точкам, определяющим наклон
касательных на концах и параметра
выпуклости/вогнутости
линии — Полнота.
Рис. 3.50
27
Плоские →
В отдельные структуры вынесены плоские и пространственные линии. Плоские линии — это синусоида и кулачок.
Рис. 3.51
Синусоида...
Синусоида задается через
центр, радиус (амплитуду), начальный и конечный углы.
Рис. 3.52
Рис. 3.53
Рис. 3.54
Рис. 3.55
Кулачок...
Кулачок определяют центр и три параметра:
1) Параметр А — внешний радиус (радиус выступов);
2) Параметр В — разность между внешним и внутренним (по впадинам) радиусами;
3) Число выступов — понятно по смыслу.
Пространственные →
Квадратичные, интерполяционная
кривая Лагранжа через 4 точки и пространственная — по двум проекциям.
Здесь также команда Разброс по Z...,
которая разбрасывает линии из группы
по z координате.
Рис. 3.56
Это удобно при импортировании линий, например, из CorelDraw и задания по ним полиповерхности.
28
Квадратичная...
Квадратичная кривая, как и
Безье, характеризуется начальной
и конечной точками, однако промежуточных характеристических
точек не две, а одна.
Рис. 3.57
Рис. 3.58
Также задается полнота. При полноте равной 1 (считается максимальной)
кривая распадается на два отрезка; при 0 — это один отрезок, соединяющий начальную и конечные точки; при 0,41 — это дуга окружности. При отрицательных
значениях, например, -2,41 — это часть дуги, недостающая до полной окружности.
Лангранж 4...
Данная кривая параметрическая удобна тем, что проходит
через все 4 точки — интерполирует. Задание точек и их координат аналогично отрезку прямой.
Рис. 3.59
Рис. 3.60
Линия по 2 проекциям...
Рис. 3.61
Рис. 3.62
29
По двум линиям-проекциям создается новая линия. При этом в структуре старые линии остаются. Здесь важно, чтобы линии имели одинаковое
направление. Если это не выполняется, то необходимо реверсировать — изменить направление линии (см. панель «Линия»).
Данная задача является важной при проектировании бортовых линий и
фальшборта судна.
Разброс по Z...
Допустим, вы подготовили носовые шпангоуты в CorelDraw, все они
лежат в плоскости. В системе Вектор,
чтобы задать по ним поверхность, их
нужно разнести в пространстве с соответствующим шагом, а затем «натянуть»
поверхность. Команда «Разброс по Z»
это и делает.
Рис. 3.63
Рис. 3.64. Разброс импортируемых линий в пространстве и
натягивание на них полиповерхности
30
5. КОНТЕКСТНОЕ МЕНЮ
Рис. 3.65
Контекстное меню из основной структуры — это быстрый доступ к
командам, функциям и другим действиям, выполняемым над объектами и
группами, расположенными в структуре.
Вход в контекстное меню. В структуре указатель мыши подвести к
названию объекта или к его пиктограмме и щелкнуть по нему правой кнопкой — откроется панель контекстного меню. При этом не обязательно объект
делать активным. Рассмотрим команды контекстного меню.
Редактировать...
Три точки после названия команды означают вывод диалогового бокса.
В данном случае для каждого объекта
будет свой диалоговый бокс изменения
его параметров.
При редактировании группы происходит вывод диалогового бокса задания градиентного задания цвета линий
Рис. 3.66
по глубине (координате z).
Эта функция действует на группы, состоящие из полилиний, например,
для барельефов (рис. 3.67), полученных после распознавания растровых картин.
Сначала, после распознавания, барельеф, если его не вращать, выглядит в виде горизонтальных линий. Выполнив градиентную окраску линий
(допустим, от одного цвета до другого), вы получите изображение, приближенное к оригиналу. А, вращая барельеф, увидите рельеф объекта.
Другие возможности работы с барельефом смотрите в разделе «Линии».
31
Рис. 3.67. Моделирование по плоским изображениям
Слева направо: оригинал; первоначальный вид рельефного сканирования,
градиентная заливка линий; барельеф в повернутом состоянии
Преобразовать...
Из контекстного меню, то есть из структуры, все преобразования происходят только для указанного объекта или группы.
Дублировать
Данная команда дублирует указанный объект или группу из структуры.
Новый, дублированный, объект (группа) совпадает с оригиналом.
Переименовать
Переименование объекта, группы.
Цвет...
Задание цвета линий, полилиний, контура поверхностей через стандартную палитру цветов.
Цвет заливки...
Задание цвета замкнутых фигур, полилиний (замыкаются автоматически), поверхностей и тел через стандартную палитру цветов.
Толщина...
Определяет толщину линий.
С помощью этой команды можно изменить размер
объекта «Точка».
Рис. 3.68
Вкл./Выкл.
Включить /выключить — позволяет объект или группу сделать невидимыми (пока используется вместо функции удаления). В дальнейшем команда «Удалить объект» будет реализована, т.к. в данном случае объекты
хоть и скрыты, но занимают память и замедляют работу системы.
32
Вкл./Выкл. каркас
В панели «Вид» (строка главного меню) есть команда «Каркас», которая переключает изображение всех объектов на каркасное изображение. Здесь
же в контекстном меню команда действует на соответствующий объект.
Это используется в оформительских задачах, когда одни объекты нужно изобразить реалистично, а другие — через каркас. Кроме того, каркас часто подчеркивает рельеф той или иной местности.
Передвинуть вверх
Обеспечивает передвижение объекта или группы по структуре вверх.
Передвинуть в начало
Передвижение объекта или группы по структуре в самый верх.
Композиция →
Рис. 3.69
Реализованы пять композиций: повтор, разброс, разброс по линии, разброс
по поверхности, разброс (ритм) к точке
схода.
Если объект не задан, то в диалоговый бокс той или иной композиции войти
невозможно. Рассмотрим композиции их
по порядку.
Повтор...
Рис. 3.70
Повтор возможен как в плоскости,
так и в пространстве; по горизонтали (шаг
по Х), по вертикали (шаг по Y) и в глубину
(шаг по Z). Объект (группа) размещается
вправо, вверх и в глубину от оригинала,
который сохраняется, и, если композиция
получилась неудачной, эту группу можно
выключить и повторить все заново.
На рисунке 3.71 показан повтор типоэлемента орнамента: по горизонтали ряд состоит из трех типоэлементов, по вертикали — из
двух, с шагом 3,5 см.
Далее с орнаментом, как и с группой полилиний, можно делать различные преобразования: заливать случайным цветом, сглаживать,
Рис. 3.71
выполнять художественные, конформные и
другие преобразования.
Нужно помнить, что после сглаживания, линии необходимо перевести
в полилинии. Т.е. выполнить команду «Линия → Полилиния» (см. главная
строка меню «Линии»).
33
Разброс...
С помощью открывающегося окна «Случайный разброс» можно размещать объекты или группы по всем трем координатам. При этом объект
(группа) может масштабироваться и разворачиваться относительно мировой системы координат
(МСК). Задаваемые параметры: число копий, разброс масштаба, поворот вокруг той или иной оси.
Следует заметить, что поворот возможен
только вокруг определенной оси, и при этом необходимо указать (поставить флажок), вокруг какой
оси происходит вращение.
Рис. 3.72
На рисунке 3.73 представлен пример с одним
из 20-и типоэлементов орнамента. Оригинал —
справа. Для выполнения команды были заданы:
число копий — 3; разброс масштаба — 0,25.
Рис. 3.73
Разброс по линии...
Здесь происходит размещение
объекта (группы) по линии. При этом
объект или группа могут масштабироваться, размещаться по линии случайно, а также, в соответствующих
точках, по касательной. То есть, вектор нормали фигуры совпадает с касательной в той или иной точке.
Задаваемые параметры: число
копий; направляющая; разброс масштаба; разброс по касательной. При
выставленном флажке, вектор нормали совпадает с вектором нормали фигуры.
Рис. 3.74
Рис. 3.75. Разброс фигуры по линии: слева — равномерно, справа — по касательной
34
Разброс на поверхности...
Рис. 3.76
Размещение объекта (группы)
на поверхности происходит по криволинейным координатам U и V. При
этом объект, группа могут масштабироваться и размещаться на поверхности случайно.
Задаваемые параметры: поверхность, на которой размещаем
объект или группу; число копий по U
и V; разброс масштаба.
Поверхности могут быть: линейчатыми, вращения, квадратичными,
полиповерхностями. Ограничения —
поверхности до размещения на них
фигур не могут быть преобразованы,
повернуты, сдвинуты.
Рис. 3.77. Равномерное и случайное размещения круга по поверхности вращения
Ритм к точке схода
Перспективный масштаб: золотое
сечение (0,618); дьявола (0,666); великолепная семерка (0,777), золота середина
(0,5).
Точка перспективы (точка схода) —
величина переменная и задается пользователем.
Другие задаваемые параметры:
— шаг по X и число повторяемости
объекта или группы по горизонтали;
Рис. 3.78
— шаг по Y и число повторяемости
объекта или группы по горизонтали;
— число повторяемости объектов в глубину;
— перспективный масштаб;
— точка схода.4
Перспективный масштаб и есть та величина, от которой зависит, как
скоро мы хотим достичь перспективы.
35
Построение к точке схода возможно и для трехмерных объектов. На
рисунке координата z = -10. Н такую сцену можно смотреть под разными углами пространства.
Рис. 3.79. Построение ритма по принципу перспективного убывания к точке схода
Анимация…
Анимация — одна из интересных функций в системе Вектор.
Задавая траекторию движения объекта, сам объект и скорость, можно
создавать баннеры и мультфильмы.
Объекты при движении по своей
траектории могут выполнять разные преобразования: масштабироваться, вращаться вокруг касательной к кривой траектории, вращаться вокруг нормали к
кривой и вокруг третьей орты.
При этом задаются следующие
параметры:
1) число циклов;
2) скорость;
3) масштаб;
4) углы;
5) траектория — кривая, по которой движется объект или группа;
6) шаг — интервал, с которым
«скачет» объект или группа по кривой;
7) вывод (ставится флажок) итерационных картинок в файлы с расширением
.bmp, например, чтобы использовать рисунки в других редакторах анимации
лучше использовать небольшие картинРис. 3.80
ки (баннеры).
Решим несколько простых задач.
Пример 1. Задать вращение круга вокруг оси z, имитирующего скачущий мячик из одной полуплоскости на другую.
Решение. Задаем отрезок с координатами точек начало, конца (0,0,0),
(0,0, 10) и круг, сдвинутый вправо от центра.
Движение будет осуществляться относительно касательной от 0 до
180 .
36
Скорость движения — 25 кадров в сек., шаг по t — 0,01. То есть, пока
круг движется по отрезку, визуализируется 100 кадров, которые обеспечивают плавное движение круга (мяча). Число циклов задается по усмотрению.
Чтобы круг вернулся обратно, нужно задать два цикла и поставить флажок.
При анимации оригинал с экрана исчезает, поэтому после того, как анимация
закончилась, оригинал можно включить (см. контекстное меню).
Пример 2. Выполнить вращение круга вокруг вертикальной оси.
Решение. Вращение возможно вокруг касательной, нормали и третьего
орта заданной линии. Касательная совпадает с отрезком. Нормаль для отрезка, перпендикулярного плоскости экрана, будет двигаться по оси x, а третий
орт — по направлению оси z.
Для вращения шара с отраженной на
нем картой земли, использовано 18 картинок.
Пример 3. Для круга выполнить наплыв (zoom).
Решение. В меню задания анимации
есть параметр задания масштаба, с помощью
которого объект при его движении в одном
цикле будет уменьшаться или увеличиваться.
Рис. 3.81
37
6. ПОЛИПОВЕРХНОСТИ
Вспомним, если в конце
командной строки стоит треугольник (стрелка) — это означает, что в ней есть еще один
уровень меню. Если в конце
команды стоит многоточие —
это переход в диалоговый бокс,
где задаются параметры ее выполнения. Нет ни стрелок, ни
многоточия — команда выполняется без параметров.
Рис. 3.82
Рис. 3.83
Линейчатая →
Создать...
Линейчатая поверхность формируется по двум линиям U0 и U1, которые
должны быть заданы заранее и — быть в
структуре.
Число сечений — это число выводимых линий при построении. Достаточно
двух V-сечений. Чтобы задать поверхность достаточно поместить имена линий
в соответствующие поля диалога: щелкнуть мышью в окне, куда помещается линии, а затем — по имени линии — в
структуре. Система автоматически сформирует поверхность. Если из-за неправильного направления линий поверхность
Рис. 3.84
получилась не та, то линию нужно реверсировать.
Поверхность имеет градиентную заливку только с одной стороны, поэтому, чтобы поменять ее сторону, нужно изменить «Внутренность» (поставить флажок) или отрегулировать освещенность — сделать поверхность светлее. Можно вообще поверхность представить каркасом, причем, продублировав, получить то и другое.
38
Рис. 3.85
Из линии и плоскости...
Линейчатая поверхность формируется между линией и плоскостью.
Причем точки от линии проецируются на плоскость под прямым углом. На
практике грани объектов — это обычно линейчатые поверхности или поверхности вращения и только потом уже сложные — квадратичные, кубичные и
т.д. В этом плане в системе Вектор реализован подход формирования поверхности между линией и произвольной плоскостью.
На рисунке 3.86 показан пример формирования поверхности, у которой верхняя
образующая задана в виде «пилы». Используя ее в качестве образующей линии, а основание — плоскость, можно получить поверхРис. 3.86.
Башня как линейчатая поверхность: ность одной командой.
«линия — плоскость»
Данный подход может быть использован для задания поверхности вертикального борта судна или фальшборта — довольно сложной задачи при
проектирование корпуса судна. Если задавать не ортогональное проецирование, а центральное, то можно формировать конические поверхности, задавая
линией, плоскостью и вершиной конуса. Так задается фальшборт — носовые
и кормовые части — в системе Форан. В системе Вектор эту задачу можно
решать через обобщенный конус и обобщенный цилиндр (см. дальше).
Развертка...
Эта команда без параметров.
Для ее применения в основной
структуре необходимо требуемую
поверхность
сделать
активной:
щелкнуть два раза левой кнопкой
мыши по имени поверхности.
Рис. 3.87. Развертка башни,
у которой боковые грани — прямоугольники
Развертка состоит из треугольников-полилиний, которые в структуре находятся в группе — это означает,
что их можно сглаживать, превращать
опять в полилинии, преобразовывать в
Рис. 3.88. Художественные преобразования
художественные объекты, отображать
групп полилиний, полученных после развертки
на
поверхности и рельефы, произво(треангуляции)
дить конформные преобразования.
39
Вращения...
Поверхности вращения образуются вращением линии вокруг оси z. Образующие линии могут задаваться в диалоге, МК и импортироваться из .dxf формата.
Следует обратить внимание на следующее: при импортировании одной
или нескольких линий все они автоматически помещаются в группу. При задании поверхности линии из группы нужно вытащить. Делается это просто:
группу открыть (щелчок по «плюсу» перед именем группы), затем подвести
курсор мыши к нужному имени линии и вытянуть ее вниз из группы. После
этих действий имена линий становятся видимыми в локальных структурах.
На рис. 3.89 смоделирована как раз такая ситуация: образующая линия
есть, но в локальной структуре ее имени нет. После того, как ее вытащили из
группы, она появилась и в локальных структурах при задании поверхности
вращения, т.е. то, что нужно.
Рис. 3.89. Задание поверхности вращения
Как только в меню «Поверхности вращения» вы указали образующую,
автоматически появляется изображение поверхности. Дальше вы можете менять параметры, например: строить не всю круговую поверхность, а только ее
часть; изменить число выводимых сечений по U или V; изменить внутренность, освещенность (это уже в другом окне).
Существенным параметром является формирование поверхности по узлам. На рис. 3.90 показана поверхность вращения и ее образующая в различных видах. На 3-й картинке у поверхности изменен угол. В данном случае получилась уже не поверхность, а псевдотело, закрытое со всех сторон гранями.
Рис. 3.90. Построение линейчатой поверхности по узлам и ее части
40
Квадратичная...
В общем случае поверхность формируется по
квадратичному закону — по
двум направляющим и двум
образующим. Также можно
задавать точку и параметр
управления (действует только
в том случае, если у средней
точки (сред. т) изменен нуль
какой-либо из координат).
Возьмем самый простой случай (рисунок наложен на структуру). Два отрезка используются в качестве образующих U0 и V1 —
это минимальное условие задания линий, лежат в плоскости xy. Через них строится
поверхность, задав для этого
еще высоты средних точек.
На рисунке 3.92 все высоты
равны 2. Если использовать
среднюю точку, то можно
управлять ее формой и параметром полноты.
Рис. 3.91
Рис. 3.92
При формировании поверхности по 4-м линиям
контура нужно следить за их направлением, если не
устраивает, линию реверсировать. Высоты по контурам можно использовать и в случае задание контура
линиями, — поверхность на заданную высоту будет
от них оторвана.
На рис. 3.93 квадратичная поверхность построена через тот же контур, что и на рисунке 3.92, но
с использованием средней точки и коэффициента
полноты.
Рис. 3.93
41
Полиповерхность...
Формирование
поверхности
происходит по набору сечений, подобно тому, как полилиния формируется по точкам. Построение поверхности начинается с 3-х линий (по
квадратичному закону). Если линий 4 —
по кубическому.
Рис. 3.94. Полиповерхности по сечениям,
заданные вращением вокруг оси
По пяти сечениям поверхность
строится по линейному закону. Построить линейчатую поверхность по 3-м и 4-м
сечениям через «Полиповерхность» невозможно. На рисунке образующие линии-окружности были заданы в диалоге с
указанием соответствующих координат
центров по высоте, т.е. линии разбросаны
по высоте. Также их можно разбросать по
высоте с заданным шагом автоматически
(см. панель «Линии»), но только, если
они в группе и полилинии.
Зададим 5 сечений, поместим их в
группу и также зададим полиповерхность. Линии по высоте заданы естественно друг от друга, последовательно.
В команде «Линии из
группы» поставить флажок —
в этом случае группы становятся видимыми. Поместив
соответствующее
название,
получим линейчатую поверхность (рис. 3.96) по 5-и сечениям в виде «мясорубки».
Рис. 3.95
Рис. 3.96
Полиповерхность (вход из структуры) можно редактировать — изменять число выводимых U и V-сечений, менять внутреннюю часть поверхности на внешнюю. Каркас можно получить или из структуры (локально для
данного объекта), или из «Вид».
Полиповерхность — мощный инструмент для представления поверхности корпуса судна, заданных набором сечений (распознанный теоретический чертеж в .dxf формате). Линии импортируются, выполняется команда
«разбросать по z с заданным шагом» и после этого строится полиповерхность
и сглаженная полиповерхность.
42
Сгладить полиповерхность...
Так же, как и в полилинии, в полиповерхности имеется 4 типа сглаживания:
1) по квадратичному закону;
2) по кубическому — Безье;
3) по заданному радиусу (используется для труб);
4) интерполяционный — по заданным сечениям (применяется кубический
закон сглаживания).
Сглаживание важно для судовых
поверхностей, заданных на плазе, где
учитывается каждый миллиметр при
длине судна в сотни метров. На экране
Рис. 3.97
ПК проследить такие построения вряд ли
возможны.
Поэтому используются большие плоттеры, а для расчетов — мощные
станции с параллельными вычислениями, так называемые кластеры.
Возьмем простой пример. Пусть сечения разбросаны в пространстве по
кругу. Чтобы через них получить замкнутую поверхность, нужно, чтобы они
замыкалась на нулевом сечении.
Формируем поверхность. Через 3 введенных линии появляется одна
фигура, через 4 — другая (рис. 3.98).
Подкорректировав число сечений (U = 9, V = 4), получим правильное
6-гранное тело. (рис. 3.99).
Рис. 3.98. Поверхности через 3, 4 и 5 сечений
Рис. 3.99
Далее, применяя сглаживание, получаем самые разнообразные по форме фигуры (рис. 3.100).
Рис. 3.100
43
Обобщенный цилиндр
Обобщенный цилиндр можно создать
не из одной линии, а сразу из группы. На рисунке 3.101 группа состоит из 2-х окружностей. Задав направляющий вектор, который
определяет направление обобщенного цилиндра и его высоту вдоль этого направления,
получим обобщенный цилиндр (рис. 3.102).
Рис. 3.101
Рис. 3.103
Рис. 3.102
При импортировании линий из
CorelDraw, например, двух пятиугольников,
также получим обобщенный цилиндр. Чтобы
поверхность получилась адекватная линиям,
должен стоять флажок: «Сечения по узлам».
Обобщенный конус
Рис. 3.104
Обобщенный цилиндр и обобщенный конус — это линейчатые поверхности,
у которых: в качестве направляющей —
заданная линия; образующие — отрезки
определенной длины, расположенные в заданном направлении. Причем, такие поверхности можно строить на множестве
полилиний, находящихся в группе.
Пусть в CorelDraw заданы два прямоугольника. Построим их как обобщенные конусы к точке схода (0,0,-10); высота — равна 6 (рис. 3.104).
Далее обобщенный конус можно
преобразовать в совокупность полилиний,
а затем применить художественные эффект (рис. 3.105), преобразовав полилинии
в арт-линии.
Рис. 3.105
44
Обобщенная труба
Реалистическое
изображение трубопроводов —
задача для архитекторов.
Нужно она и для судовых механиков — проследить коммуникации судовых трубопроводов и правильно вести
эксплуатацию.
V — число задаваемых
сечений, должно быть меньше U — выводимых. В противном случае в конце трубы
появляется «кручение».
Рис. 3.106
XY поверхности →
Аналитическая...
При создании иллюстраций книг, иногда реальный мир приблизить к
математическому, задавая его в твердотельным изображении с наложенной
топологической сеткой, создавая эффект пространства и цвета. Для этого
можно использовать аналитические поверхности.
Рис. 3.107
В наборе имеется 172 поверхности.
Для выбора предусмотрен автоматический
перебор и, если нужно, запись их в формате
.bmp для последующей, например, анимации.
Та или иная аналитическая поверхность задается: «Тип рельефа». «Начало» и
«Правый верхний угол» — определяют область задания прямоугольной сетки. «Число
U-сечений», «Число V-сечений» — опреляют
частоту линий в том и другом направлениях.
«Внутренность» — параметр определяет освещение той или иной стороны поверхности.
Рис. 3.108. Аналитические поверхности
45
Рис. 3.109
Рис. 3.110
Чтобы нанести сетку на аналитическую поверхность, необходимо выполнить команду: «Поверхность → полилиния». В зависимости от поставленной задачи сетка будет усиливать рельеф
(рис. 3.109), или сама стать объектом
(рис. 3.110).
Перебор аналитических поверхностей
В состоянии «XY-поверхности» есть возможность быстрого просмотра аналитических поверхностей в
диапазоне от 1 до 173, или в другом
каком-либо интервале.
Рис. 3. 111
При этом рисунки выводятся на экран или в файл в формате .bmp.
Многие примеры таких преобразований в статическом и динамическом вариантах даны на сайте: http://vm.msun.ru в разделе «Выставки»
Фон → XY-поверхность...
В этом случае растровая картинка-фон в зависимости от яркости каждой точки преобразовывается в поверхность-рельеф. Поверхность формы не
всегда вырисовываются так, как хотелось бы, однако, применяя еще аналитические поверхности, можно добиваться впечатляющих изображений.
При преобразовании фона в XYповерхность количество сечений необходимо
задать хотя бы 10 на 10.
Рис. 3.112
Сложение XY поверхностей
Рис. Рис. 3.113
46
Эта операция выполняется только
для аналитических поверхностей. За счет
сложения XY поверхностей формы аналитических поверхностей можно разнообразить.
При сложении — старые поверхности удаляются, поэтому, если они нужны,
их нужно продублировать. Кроме того, не
забывайте указывать начало и конец (правый верхний угол) задаваемой после сложения поверхности (хотя бы — 10 на 10),
иначе действия будут безрезультатными.
Рис. 3.114
Фигуры → Треугольник, Параллелограмм
В меню «Фигуры» раздела «Поверхности» внесены «Треугольник» и «Параллелограмм», которые задаются тремя точками.
Цвет фигур можно задавать сразу или
после, через общую структуру.
Рис. 3.115
Новые положения точек можно задать: вводя координаты точек, или
курсором левой кнопки мыши. Во втором случае — щелкнуть по «Т.1» (точка
1). После этого курсор перепрыгнет на поле первой точки треугольника, а далее, не отпуская кнопку, передвигать ее в нужное положение. Аналогично
можно поступить с другими точками.
Чтобы изменить высоты точек можно задать их координаты цифрами
или с помощью мыши. При удерживании клавиши <Ctrl> и левой кнопки
мыши координата Z увеличивается, а, нажав <Shift> и левую кнопку мыши,
— Z уменьшается.
Скорость изменения координаты по Z можно регулировать — щелкнуть правой кнопкой мыши по названию.
47
Художественная поверхность
В этой команде по двум образующим полилиниям строится линейчатая
поверхность. Далее, для семейства Uлиний, задается художественный прием
— столько-то шагов вперед, столько-то
— назад, подобно художественным полилиниям (см. «Линии»).
Это можно выполнить и другим
способом: преобразовать поверхность в
группу полилиний (см. следующую команду: «Поверхность → Полилиния»), а
затем группу полилиний в состоянии
«Линии» преобразовать в художественные.
Рис. 3.116
Рис. 3.117. Художественная поверхность вращения
Поверхность → Полилиния
Диалог для данной команды включает:
Рис. 3.118
— структуру, в которой можно выбрать поверхность, необходимую для преобразования в группу полилиний;
— выбор числа линий по U и V;
— задание числа точек на U и Vлиниях.
После выполнения команды появляется «Группа полилиний» поверхности (старая
поверхность тоже остается), к которой можно применять действия из других подменю и
общей структуры.
Поверхность → паркет
Функции данной команды такие же, что и в команде «Поверхность → Полилиния», за исключением того, что здесь образуется группа полилиний-ячеек
поверхности.
48
Ячейки могут быть треугольники или четырехугольники. В дальнейшем планируется разнообразить формы ячеек.
С группой ячеек можно
работать, как с группой полилиний: заливать цветом, сглаживать, преобразовывать в художественные линии, делать линии с отрезками, конформно
преобразовывать на другие
плоскости и т.д.
Рис. 3.119
На рисунке 6.24 выполнено следующее:
— переопределено числа U и V-сечений;
— выполнено сглаживание;
произведена заливка случайным цветом.
Далее дубль можно преобразовать в группу
полилиний, а группу полилиний в художественные, получая различный художественный эффект.
Рис. 3.120
Текстура...
Меню «Текстура» включает только одну команду - выбор объекта «Картина». Перед этим обязательно должна быть задана «Поверхность», на которую наносится текстура. Поверхность в структуре
должна быть активной. После того, как «Картина»
выбрана, система автоматически располагает ее на
поверхность. Ориентация зависит от того, как «Картина» была задана первоначально.
Рис. 3.121
Редактировать можно только поверхность, на которой
отображается картина. Например, увеличив число сечений, сделать ее более сглаженной или поменять ее цвет.
Если по каким причинам текстура не устраивает, поверхность задается заново.
Рис. 3.122
49
Тень...
Тень строится от поверхностей: линейчатой, квадратичной, вращения и
др. на заданную плоскость (треугольник или параллелограмм).
Перед
тем как построить тень от
поверхности на
плоскость,
нужно задать
источник света
(см. Вид → Освещение).
Рис. 3.123
Затем в панели «Тень»
указываем: источник тени —
поверхность, и указываем
плоскость (треугольник или
параллелограмм), на которую
она падает.
Рис. 3.124
При преобразованиях объектов источник света остается в одном и
том же месте, поэтому при редактировании поверхности (в том числе и масштабировании) тень будет изменяться. Отсюда следует, что преобразовывать
необходимо не объект, а положение камеры (см. Вид → Камера).
Рис. 3.125
Цвет тени зависит от цвета плоскости, на которую она падает.
1. «Затененность» меняется параметром «Доля рассеянного света» в
меню «Вид → Освещение». Тамже и его положение.
2. При изменении положения «Источника освещения» тень меняется
меняет свое положение автоматически.
3. Тень «бросать» на все объекты сцены, а не только на плоскости.
4. Тень имеет цвет тот, на который она «падает», только с меньшей яркостью.
50
7. ТЕЛА
В блок «Тела» входят: пирамида, параллелепипед, шестигранник, линейчатое
тело «Поверхность-поверхность» и линейчатое тело «Поверхность-плоскость».
Рис. 3.126
Пирамида
Основанием пирамиды может быть
треугольник или параллелограмм (см. фигуры в панели «Поверхности»). Вершина пирамиды находится на перпендикуляре от середины центра основания на «Расстоянии до
центра».
Рис. 3.127
Параллелепипед
Рис. 3.128
Параллелепипед определяется 4-мя точками. «По умолчанию» одна вершина находится в нулевой точке системы координат, три другие лежат на осях x, y, z.
Изменить координаты вершин можно через клавиатуру или с помощью
мыши. Для этого стрелку мыши подвести к названию соответствующей точки
(Т.0 – Т.3), щелкнуть по левой кнопке, в результате чего она перескочит на
соответствующую точку, и далее, не отпуская кнопку, двигать точку в нужное место. Редактировать точки параллелепипеда можно и после — через
структуру системы.
51
Шестигранник
Шестигранник в частном
случае — это куб.
Изменяется форма шестигранника аналогично параллелепипеду.
Следует обратить внимание,
что возможно редактирование шестигранника, как и других фигур и
тел, двигая их вершины, но только,
если они предварительно не были
преобразованы, например, не был
изменен масштаб.
Рис. 3.129
Линейчатое тело «Поверхность-поверхность»
Линейчатое тело может быть образовано между двумя поверхностями. Оно
будет правильно изображаться (без всяких выворотов и кручения), если «правильно» ориентированы поверхности
нижнего и верхнего оснований. Самый
простой способ — одну грань задать, а
вторую получить дублированием и сдвигом первой.
На рисунке 3.130 даны и помещены
в окно структуры две простых (заданы
двумя отрезками) линейчатых поверхности.
Как только ввели имена линейчатых поверхностей, сразу (рис. 3.131) появляется линейчатое тело.
Рис. 3.130
«Видимость» — удалить (открыть) ту или иную грань тела. «Внутренность» (освещенность) можно менять, т.е. линейчатое тело можно рассматривать как снаружи, так и изнутри, открыв одну или две грани.
Рис. 3.131
Рис. 3.132. Справа показан каркас того же, немного
повернутого, объекта
52
Линейчатое тело «Поверхность-плоскость»
При моделировании 3D-объектов для пользователя важно иметь как
можно меньше входных данных (координат точек, линий) — всегда есть желание сразу строить трехмерную фигуру. Один из таких способов построения
линейчатых фигур — «Поверхность-плоскость».
Рис. 3.133
Рис. 3.134
В данном
случае решается
задачи однозначного проецирования на плоскость,
что увеличивает
точность расчета,
например, плоского борта судна,
аналогично тому,
как
строилась
башня для полилинии с вертикальными участками к плоскости.
На рис. 3.134. построено линейчатое тело
между квадратичной поверхностью и плоскостью. Задано реалистическое и каркасное изображения.
С помощью команд «Поверхность-плоскость»
можно строить тени, правда, только при перпендикулярном падении лучей к плоскости.
53
8. КАРТИНА
Картина генерируется из растрового рисунка — фона.
Сначала нужно выполнить команды: Вид → Фон → Открыть.
Список расширений файлов растровых изображений дан на рисунке 3.135 (внизу). Однако лучше использовать файлы .jpg — это надежнее.
Рис. 3.135
Если недостаточно ресурсов ПК, картинка может не появиться, но она
есть и, выполняя команды «Фон → Полилиния», «Фон → XY-поверхность»,
на экране все равно появится набор горизонтальных линий.
Аналогично и для картины. Объект «Картина». В окне диалога нужно
задать размер картины — ее правый верхний угол.
Картина определена. Белый фон (поставить флажок) можно задать прозрачным (рис. 3.137).
Рис. 3.136
54
Далее объект «Картина» можно преобразовывать: вращать («Преобразовать»), делать
перспективным. Картины, как фактуры, можно
отображать на поверхности: линейчатые, вращения, квадратичные, полиповерхности.
Есть один минус — картина отображается на поверхность без учета ее преобразований, в частности, поворотов. Выход из полоРис. 3.137
жения: Выход из положения: картину-фон повернуть, например, в программе PhotoShop.
Изменяя угол поверхности вращения, картину-фактуру можно сужать и
делать ее более видимой для зрителя. На рисунке 3.138 показаны несколько
этапов создания фактуры (оригинал справа), на поверхности вращения.
Рис. 3.138. Слева направо:
1 — оригинал как фон;
2 и 3 — картина как аффинные преобразования (поворот, сдвиг);
4 — отображение картины на поверхность
Рис. 3.139. Отображение картины на полную поверхность вращения
и на половину
55
9. ПРЕОБРАЗОВАНИЯ
Если в «Преобразованиях камеры» (см. «Вид →
Камера») происходит изменение системы координат по
отношению к зрителю, а объект по отношению к координатам остается неизменным, то в данном наборе команд происходит обратное. Глобальная система координат остается неизменной, а сам объект изменяется:
уменьшается или увеличивается, поворачивается, отражается и т.д.
Рис. 3.140
Активного объекта
Через команды «Преобразования → Активный объект…» открывается окно меню «Преобразование
объекта» (рис. 3.141). Это окно появится и при выполнении команд
«Преобразования → Всех объектов...»
«Растяжение/сжатие», может
быть однородное (стоит флажок) или
неоднородное (без флажка).
При однородном растяжении
все три поля «по X, Y и Z» становятся
активными. Задавая те или иные параметры «Растяжения/сжатия» объекта, соответственно получим сжатие
активного или всех объектов.
Рис. 3.141
На рисунке 3.142 показан результат
сжатия окружности на 0,5 по х. Если задать
1, то в этом случае сжатия не произойдет.
При проставленных значених в других окошках растяжение или сжатие будут происходить одновременно.
Рис. 3.142
«Поворот». Здесь все поля активные (рис. 3.143). Задавая значения угла
вращения объекта вокруг той или иной
оси системы координат экрана, мы будем вращать один объект или группу.
Рис. 3.143
56
Ось Z направлена от экрана. Поворот против часовой стрелки является
положительным, в обратную сторону — отрицательным. Вращение вокруг
оси X: положительное — от нас, отрицательное — к нам. Аналогично и вокруг оси Y.
Мощным инструментом при преобразованиях является ArcBall (на
рис.3.143, справа), который представляет собой как бы сферу, вращая ее, мы
вращаем активный объект или все объекты.
«Отражение относительно» — это инструмент отражения относительно координатных плоскостей. Его действие: «левую перчатку поменять на
правую». Относительно какой плоскости происходит отражение, указывается флажком.
Рис. 3.144
«Перенос». С помощью данной команды
объект или все объекты можно передвинуть в ту
или
иную сторону. Сделать это можно, задавая коРис. 3.145
ординаты, или с помощью указателя мыши.
С помощью мыши перенос активного объекта (одного или всех) выполняется следующим образом. В панели «Преобразования» необходимо
стрелку мыши подвести к слову «Перенос» и щелкнуть левой кнопкой
мыши — стрелка перепрыгнет на рабочее поле начала системы координат.
Нажав на левую кнопку, объект можно двигать по полю.
Рис. 3.146
«Сохранить оригинал». Если стоит флажок, то
все вышеперечисленные команды выполняются с дублированием.
Например, после того, как выполнили команду «Перенос», «ArcBall» и
т.д., старые объекты сохраняются. Причем, данная команда применяется как
для активного объекта, так и группы.
Рис. 3.147
«ОК» и «Применить». Команда «Применить» используется для просмотра результата выполненного преобразования, не закрывая диалог «Преобразования». Команда «ОК» — чтобы выйти из диалога.
Примечание. Команда «Cancel» в диалоге панели «Преобразования»
действует только для одного объекта.
Всех объектов
Данная команда преобразований включает тот же диалог «Преобразования» что и для «Активного объекта...», но изменения в этом окне действуют не на один объект, а на группу.
57
Конформные
Эти преобразования описаны в следующей команде.
Перебор конформ…
В диалоге (рис. 3.148) собраны команды и настройка параметров перебора конформных преобразований на рельефах и изменений
самих рельефов (ставится флажок).
Диапазон конформных преобразований: 1 — 73.
Диапазон возможных рельефов: 1 — 172.
Поле «Сложить по Z» обеспечивает сложение координат текущего рельефа с предыдущим —
Рис. 3.148
происходит накопление.
Если в поле «Вывод на экран» стоит флажок, то изображение выводится на экран. Аналогично работает «Вывод в файл» — при проставленном
флажке изображения рабочего поля экрана сохраняются в файлах с расширением .bmp.
Случайные
Команда относится к случайным преобразованиям точек на полилинии или группе полилиний.
На рисунке 3.150 показано, как
происходит преобразование полилинии окружности.
Сначала задается окружность,
затем преобразовывается в полилинию (см. панель «Линии»).
Рис. 3.149
И только потом — «Случайное преобразование точек».
Изображение (рис. 3.150) получено из окружности при параметрах, заданных по умолчанию.
Разброс точек может происходить по всем трем координатам, в зависимости от того, как стоят флажки. Поля
«Пропустить», «Обработать» означают, сколько точек на линии нужно пропустить и на сколько воздействовать.
Рис. 3.150
Есть недостаток: случайный разброс действует последовательно, и оригинал не сохраняется. Поэтому, перед тем, как преобразовывать линию или
группу, их нужно продублировать.
58
Ракурсные
Рис. 3.151
Ракурсные преобразования —
это довольно простое решение задач на
перспективные построения
На рис. 3.151 показан диалог задания параметров ракурсных преобразований и рисунок окружности, преобразованный к точкам схода, лежащих
на осях x и y.
Аналогичные
преобразования
выполняются в CorelDraw, но только
для двухмерного случая — на плоскости.
На рисунке 3.152 слева показаны преобразования куба (тела) к трем
точкам схода: на осях x= 5, y =5, z =5.
Справа — сначала была задана окружность,
потом ее преобразовали в полилинию, затем продублировали 4 раза, все это поместили в группу, после раскидали в пространстве, далее через эти 4 линии построили полиповерхность, ее преобразовали
в «семейство» полилиний и, наконец, для этого семейства выполнили ракурсное преобразование к
Рис. 3.152
одной точке схода на оси z с координатой -5.
Действий получилось много, но их будет меньше, если семейства линий импортировать или строить через полилинии в макрокомандах.
Ракурсные преобразования возможны для тел: пирамида, параллелепипед, 6-гранник, и полилиний. Учитывая, что все поверхности можно представить совокупностью полилиний, то для этой совокупности (каркаса) можно
также выполнить ракурсные преобразования.
В группу полилиний
Диалог для данной команды
включает:
— структуру, в которой можно выбрать поверхность, необходимую для
преобразования в группу полилиний;
— выбор числа линий по U и V;
— задание числа точек на U и Vлиниях.
После выполнения команды появляется «Группа полилиний» поверхности (старая поверхность тоже
остается), к которой можно применять действия из других подменю и
общей структуры.
Рис. 3.153
59
10. НАЧЕРТАТЕЛЬНАЯ ГЕОМЕТРИЯ
В этом меню собраны команды и
операции, которые в большей степени подходят для задач начертательной геометрии
и черчения. Однако они могут быть полезны и для других случаев.
Рис. 3.154
Система координат →
Система координат — это автоматическое задание стандартных ортогональных и аксонометрических проекций, принятых в начертательной геометрии и черчении.
Рис. 3.155
Комплексный чертеж
Комплексный чертеж — команда без параметров. Включено, т.е. стоит
флажок, — режим комплексного чертежа (рис. 3.156); выключено — обычное
рабочее окно.
Рис. 3.156
В режиме «Комплексный чертеж» рабочее поле автоматически делится
на 4 части, в которых изображаются 3 стандартных проекции: вид сверху (го-
60
ризонтальная проекция), вид спереди (фронтальная проекция), вид слева
(профильная проекция) и в правом нижнем прямоугольнике — аксонометрическая проекция (изометрия).
Объекты в окнах можно преобразовывать: двигать, вращать (ArcBall),
зеркально отображать и т.д. Перед тем, как начинать преобразования, необходимо окно сделать активным — для этого нужно правой кнопкой мыши
щелкнуть по соответствующему полю окна и затем войти в панель «Преобразования». При выполнении каких-либо действий в одном окне все проекции
автоматически изменяются. Чтобы перейти на другое окно, нужно выйти из
состояния преобразования, сделать нужное окно активным, открыть панель
«Преобразования» и только после этого изменять объект.
Рис. 3.157
На рисунке 3.157 изображен каркас пирамиды
на комплексном чертеже в трех проекциях и в изометрии. Указателем мыши границы между окнами
можно сдвигать, увеличивая площадь окон.
Следует отметить, что при наличии в системе
Вектор такого мощного инструмента как ArcBall,
пользователь больше пользуется им, чем автоматическим заданием стандартных ортогональных и аксонометрических проекций и комплексного чертежа.
Точка
Точка — равноправный объект, как и другие объекты. После задания ее
имя автоматически заносится в структуру, откуда можно его редактировать:
изменять размер, цвет и т.д.
Рис. 3.158
Существует несколько способов задания точки:
— непосредственно ее координатами,
— точка на отрезке прямой,
— точка с линиями связи,
— точка как пересечение прямой с плоскостью.
Непосредственно задание точки
Ввод координат точки можно производить через клавиатуру. Если же
указатель мыши подвести к слову «Координаты» на панели «Точка» и щелкнуть левой кнопкой мыши, то указатель перескочит на изображение точки,
которую мышью можно двигать по полю (рис. 3.159).
Размер точки (квадрата) можно менять в структуре через команду
«Толщина линии», цвет — также в общей структуре через команду «Цвет
линии».
61
Рис. 3.159
Точка на отрезке прямой линии
Перед тем, как задать точку на прямой,
должен быть задан отрезок. Параметр «Входная
ось» определяет, относительно какой координаты
вычисляется точка на отрезке. Если стоит указатель «X», то точка на прямой определяется как
функция y и z от x. Аналогично и в других случаях, когда входной осью может быть Y или Z.
Примечание. Рисунок отрезка на самом деле на
экране находится вне структуры.
Рис. 3.160
Точка с линиями связи
Точка с линиями связи задается аналогично точке, за исключением того, что от каждой проекции до пересечения с координатными плоскостями
проводится линия, которая демонстрирует связь горизонтальной проекции с
фронтальной, фронтальной с профильной.
Пересечение прямой с плоскостью
Для данного построения предварительно должны быть заданы отрезок
и плоскость (треугольник или параллелограмм). Поместив в первое поле имя
отрезка прямой, во второе — имя плоской фигуры, выполнить команду OK, и
система автоматически найдет точку пересечения прямой с плоскостью.
Рис. 3.161
62
Текст
Диалог задания текста показан на рис. 3.162. Координаты — это точки
привязки текста. Сам же текст вводится в поле, откуда автоматически переносится на рабочее поле, в соответствии с вводимыми параметрами.
Рис. 3.162
Преобразования
В раздел Н. геом. собраны преобразования из начертательной геометрии:
1) Преобразование отрезка в проецирующее положение к той или иной коРис. 3.163
ординатной плоскости проекций.
2) Преобразование отрезка в отрезок.
3) Преобразование плоскости параллельно той или иной координатной
плоскости.
4) Преобразование плоскости в плоскость.
Данная совокупность является основной при изучении начертательной
геометрии. При таких преобразованиях можно проверить некоторые свойства
объектов: пересекаются они или нет, какое между ними расстояние, как выглядит истинная (натуральная) грань объекта и т.д.
Рассмотрим последовательно все случаи таких преобразований.
Преобразование отрезка в проецирующее положение
Рис. 3.164
С помощью команды «Плоскость СК»
указываем, к какой из координатных плоскостей отрезок должен быть перпендикулярен.
Затем из структуры выбирается отрезок, который должен стать проецирующим и выполнить
команду «ОК». В результате отрезок прямой
преобразуется в проецирующее положение. Остальные объекты также изменят свое положение.
На рисунке 3.164 отрезок общего положения
преобразован в перпендикулярный координатной плоскости XY положение.
63
Преобразование отрезка в отрезок
Данное преобразование
вспомогательным.
чаще
является
Пример. Окружность расположить на отрезке прямой общего положения так, чтобы ее
центр лежал в начале отрезка, а плоскость окружности была перпендикулярна отрезку.
Решение. При преобразовании «Отрезок в
отрезок» данная задача решается просто.
Сначала самым простым способом задаем вертикальный отрезок и окружность (в плоскости XY). Затем открываем диалог «Преобразование отрезка в отрезок».
В первое поле помещаем отрезок, который преобразуем, во второе — отрезок, который должны
поместить в преобразуемый отрезок прямой. После команды «ОК» происходит изменение не
только для отрезка, но и всех объектов.
На рисунке 3.166 справа, на комплексном чертеже, показана окружность, которая вслед за отрезком совершила свое преобразование и заняла положение перпендикулярно отрезку.
Рис. 3.165
Рис. 3.166
Преобразование плоскости в плоскость уровня
В данной команде действия аналогичны преобразованию отрезка в проецирующее положение,
за исключением того, что объектом преобразования
является плоскость (треугольник или параллелограмм), и преобразование не в проецирующее (перпендикулярное) положение, а параллельное какойлибо плоскости.
Рис. 3.167
Плоскость в плоскость
Здесь преобразование аналогично преобразованию отрезка в отрезок.
Исключение — вместо отрезков используются плоскости, в частности, треугольник и параллелограмм.
На рисунке 3.168 на комплексном чертеже заданы две плоскости (фигуры): треугольник и параллелограмм.
64
Требуется треугольник совместить с параллелограммом.
Решение. Входим в меню
«Плоскость в плоскость», затем в первое окно помещаем
треугольник, а во второе —
параллелограмм. Выполняем
«ОК» — треугольник совместится с параллелограммом.
0
Рис. 3.168
Экспорт
Рис. 3.169
В системе Вектор можно экспортировать векторные объекты в формате .dxf. Причем это возможно
из меню «Файл» и «Н. геом».
В первом случае экспортирование осуществляется из
экранной системы координат, во втором — возможно
экспортирование трех проекций комплексного чертежа вместе и по отдельности, а также двух аксонометрических проекций: изометрии и диметрии.
Рис. 3.170. Примеры экспорта рисунков из системы Вектор и импорта их
в программу CorelDraw
На рисунке 3.171 показана панель «Импортирование
AutoCad
File»
в
CorelDraw при импортировании рисунков из системы
Вектор. Если вверху флажок
(точка) может стоять для любого варианта, то в нижней
части — только так, как покаРис. 3.171. Настройка параметров для импорта векторных зано на рисунке.
рисунков в формате .dxf для системы Вектор
65
Таким образом, любой векторный рисунок можно из Вектора экспортировать в CorelDraw или AutoCad, где он может быть разгруппирован и
оформлен по всем правилам ГОСТов (толщина линий, размеры и т.д.).
Готовые макрокоманды
Готовые макрокоманды, в зависимости от задач и реализации подзадач
через базовые команды и в скриптах, могут меняться. Так из первоначального
списка, многие макрокоманды были реализованы на базовом уровне, в частности, через контекстное меню структуры.
Один недостаток макрокоманд: они менее удобны, по сравнению со
скриптами в том, что при задании новых данных, нужно: вызывать текст МК и
там их вводить. Более удобными являются скрипты, в которых данные задаются в диалоге, а обозначения и названия параметров самим пользователем наглядно увязаны. А далее все как с МК: из скрипта можно войти в систему Вектор, получить сложное графическое решение, а в окне документа HTML
(скрипта) получить результаты вычислений в удобной форме — с названиями
выходных данных и их обозначениями. Для написания же скриптов мощным
средством, связывающих их с графикой, являются методы системы Вектор. В
главе IV в данной версии книги даны названия методов и вкратце, что он делан.
МЕТОДЫ СИСТЕМЫ ВЕКТОР
Методы — это своего рода функции для работы с графическими объектами в макрокомандах и скриптах.
Объекты и, соответственно методы, в системе Вектор имеют 3 статуса:
1) Для работы в МК, файлы сохраняются с расширением .vbs.
2) Для работы в МК, файлы сохраняются с расширением .js.
3) Для работы в скриптах, Internet Explorer перед средствами, методами, свойствами добавляется транскрипция "Vector".
При этом с помощью функции (или средства) CreateObject (для VBS)
можно создавать новые объекты.
Например:
Set line1 = CreateObject("Vector.Otrezok")
Set line2 = CreateObject("Vector.Otrezok")
и работать с этими объектами (line1, line2).
Отсюда следует:
1. Можно работать одновременно с несколькими объектами одного типа, например, с двумя полилиниями.
2. Такие объекты можно передавать целиком, как параметры, в другие
(новые) методы. Например, сделать метод пересечения (Cross) 2-х прямых:
Set p1 = line1.Cross(line2).
Рассмотрим методы системы Вектор с реализацией их в скриптах.
В скрипте ключевым оператором (ставится вначале функции), отвечающем за работу в системе Вектор, является:
var Vector = new ActiveXObject("Vector.Document").
66
Синтаксис метода и пример его работы в скрипте даны на диске и также смотрите http://vm.msun.ru/V_gr_2004.htm в уроках 6 и 7.
1. Метод p() определения переменной типа точки
2. Метод Ngpoint.ss () задания геометрического объекта «точка»
3. Метод Otrezok.ss () задания отрезка
4. Метод Trian.ss () задания треугольника
5. Метод Parall.ss () задания параллелограмма
5.1. Метод Parall.ss2 () задания прямоугольника
6. Методы krug.s () и Krug.ss () задания окружности
7. Метод Pyramid.s () задания пирамиды через основание и высоту
8. Метод задания полилинии
9. Метод Lagr4.ss () задания кривой Лагранжа
10. Метод Kvadr.ss () задания квадратичной кривой
11. Метод CubBez.ss () задания кубической кривой
12. Метод Sinus.ss () задания синусоиды
13. Метод Kulak.ss() задания кулачка с выступами
14. Метод C6sides.ss () задания шестигранника
15. Метод Arc.ss () задание дуги окружности или эллипса
16. Метод Compl.PointArc () вычисления точки на дуге или на отрезке
17. Метод Compl.Centr () вычиcления центра дуги
18. Метод R = Compl.Radius () расчета радиуса дуги
19. Метод Compl.PerDugDug () пересечения 2-х дуг, дуги и отрезка
20. Метод Compl.PerPerDug2 () пересечения 2-х дуг — 2-й способ
21. Метод Compl.PerDugOtr () пересечения дуги и отрезка
22. Метод Compl.KasDugOtr () построения касательной к дуге
23. Метод Compl.KasOtr2dug() — отрезок, касательный 2-х дуг
24. Метод Compl.Kas2Otr2dug() — 2-й метод отрезок касательный 2-х дуг
25. Метод RoundPov.Cone () задания конуса
26. Метод RoundPov.Cone2 () задания усеченного конуса
27. Метод RoundPov.Cyl () задания цилиндра
28. Метод Bissektor () задания биссекторной плоскости
29. Метод RoundPov.Sphere () задания сферы, части сферы
30. Метод RoundPov.ss () задания поверхности вращения
31. Задание поверхности вращения по образующей, созданной в сценарии,
диалоге или импортируемой в .dxf
32. Задание линейчатой поверхности по двум образующим, созданным или
импортируемым в .dxf
33. Метод PolyPov.SS () задания полиповерхности
34. Метод KvadrPov.SS () задания квадратичной поверхноcти
35. Метод nBody = CreateLinBody () задания тела между поверхностями
36. Метод n = LinPov.CreateFrom () линейчатая поверхности между линией
и плоскостью
37. Метод CreateLinBodyFrom () задания тела поверхность-плоскость
38. Метод n = CreateShadow () задания тени от поверхности на плоскость
39. Метод LinPov.CreateLoft () построения разверток поверхностей
40. Метод CreateIzolines () построение изолиний и сечений поверхности
произвольной плоскостью
67
41. Метод PolylineSmooth.SS () сглаживание полилинии или группы полили
42. Метод PolyPov.Smooth () сглаживание полиповерхности
43. Метод Text.ss A, «А» задания текста
44. Метод MoveToGroup () двигать в группы
45. Метод Dubl () дублирования объекта
46. Метод CurrObjNmb = n1 переопределение объекта в активный
47. Метод CurrObjStrNmb = "n1.n1" переопределение объекта в группе в активный
48. Метод Polyline.FromCurrObj () перезадание линий (и сглаженную) полилинией
49. Метод Parallped.ss () задания параллелепипеда 4-мя точками
50. Метод Parallped.ss2 () задания прямого параллелепипеда точкой привязки и тремя размерами
ПРЕОБРАЗОВАНИЕ ОБЪЕКТОВ
51. Свойство Obj.SaveOriginal = True/False сохранения объекта при преобразовании (масштабировании, сдвиге, повороте)
52. Свойство obj.scale = s масштаб объекта c сохранением и без сохранения
старого объект
53. Свойство Obj.Translate P() сдвиг объекта
54. Свойство obj.xAngle = s вращение
55. Свойство obj.All = True/False преобразовать все объекты
56. Свойство Obj.Reflect () симметрия относительно координатной плоскости
57. Масштабирование по х, y, z — по отдельности
58. Свойство Obj.Normal = p (0, -1, 0) — преобразования по вектору нормали
59. Свойства преобразований вида
60. Метод OrtTrans () преобразование отрезка прямой в проецирующее положение
61. Метод OtrezokToOtrezok () переноса отрезка прямой на другой отрезок
62. Метод PlaneTrans (m, n) преобразования треугольника или параллелограмма в положение, параллельное координатной плоскости
63. Метод PlaneToPlane () перенос плоскости на плоскость
64. Метод ToPolylineArt () преобразования полилинии в художественную
линию
65. Метод LineWithOtr.SS () линия с отрезками
66. Метод PolylineArt.Meditate () медитация
67. Метод Animate () анимация
68. Метод A.RotateZ () вращение точки на заданный угол вокруг оси z
c возвращением нового значения
69. Метод A.Rotate () вращение точки вокруг отрезка c возвращением нового значения
70. Метод Ornament (n) построения типоэлементов орнамента
71. Объект Light () источника освещения
72. Метод Racurs () ракурсных преобразований для полилиний, групп полилиний, многогранников
68
ПОЗИЦИОННЫЕ И МЕТРИЧЕСКИЕ ЗАДАЧИ
73. Метод PointOtr () точка на прямой
74. Метод Krug.P() точка на окружности от t
75. Метод PointPointSline () — точка на прямой кратчайшего расстояния от
точки до прямой
76. Метод PointPointPlane () вычисления точки в плоскости кратчайшего
расстояния от точки до плоскости
77. Метод Parall.P4 () вычисления 4-й точки параллелограмма
78. Метод Set S = Pyramid.Top вычисления координат вершины пирамиды
79. Метод Set K = PointOtrS () вычисления точка К на прямой на расстоянии s1
от начала
80. Метод PointOtrX () определения точки на прямой от аргумента х
81. Метод PointOtrY () определения точки на прямой от аргумента y
82. Метод PointOtrZ () определения точки на прямой от аргумента z
83. Метод OrtOtrFrontal () перпендикуляр-фронталь к отрезку общего положения
84. Метод OrtOtrGorizontal () перпендикуляр-горизонталь к отрезку общего
положения
85. Метод OrtOtrProfil () перпендикуляр-профильная к отрезку общего положения
86. Метод Vector.OrtToFrontal () перпендикуляр к фронтали из т. B в направлении к D
87. Метод Vector.OrtToGorizontal () перпендикуляр к горизонтали из т. B в
направлении к D
88. Метод Vector.OrtToProfil () перпендикуляр к профильной прямой из т. B
в направлении к D
89. Метод Gorizontal () построения горизонтали в плоскости
90. Метод Frontal () построения фронтали в плоскости
91. Метод LinSkata () линия ската плоскости
92. Метод PerOtrxy () пересечения горизонтальных проекции отрезков
93. Метод PerOtrxz () пересечения фронтальных проекции отрезков
94. Метод PerOtryz () пересечения отрезков на профильной проекции
95. Метод PointPlaneXY () определения точки в плоскости от x, y
96. Метод PointPlaneXZ () определения точки в плоскости от x, z
97. Метод K = PointDistPlane () определения точки на заданном расстоянии от
плоскости (точки в плоскости)
98. Метод NormPlosk () вычисления вектора нормали к плоскости
99. Метод ParalOtr () вычисления второй точки отрезка CD, параллельного и
равного AB
100. Метод ParalPlane () задания плоскости, параллельной другой плоскости
101. Метод OrtPlaneOtr () построения плоскости, перпендикулярной прямой
линии
102. Метод PerSlinePlane () пересечения прямой с плоскостью
103. Метод CentrDuga3p () вычисления центра дуги (окружности) через три
точки
104. Метод RadiusDuga3p () вычисления радиуса дуги (окружности),
проходящей через три точки
69
105. Метод PointOtrOtr () вычисления кратчайшего расстояния между двумя прямыми
106. Метод Sfera4p () вычисления центра сферы, проходящей через 4 точки,
не лежащих в одной плоскости
107. Метод DistSfera4p () вычисления радиуса сферы, проходящей через 4
точки
108. Метод LinPov.P () вычисления точки на линейчатой поверхности от
параметров u и v
109. Метод RoundPov.P () вычисления точки на поверхности вращения от
параметров u и v
110. Метод RoundPov.Proj (K) вычисления точки на поверхности вращения
от переменных x и y
111. Метод LinPov.N () вычисления вектора нормали к линейчатой поверхности
112. Метод RoundPov.N вектора нормали к поверхности вращения в ее точке с параметрами u, v
113. Метод NormPlosk () вычисляет вектор нормали плоскости
(параллелограмма или треугольника)
114. Метод Polyline.P (t) вычисления точки на полилинии от параметра t
115. Метод Polyline.T () вычисления вектора касания полилинии
116. Метод Polyline.Angle(n) определения угла между векторами в узлах полилинии 152
117. Метод KvadrPov.P () вычисления точки на квадратичной поверхности
118. Метод KvadrPov.Area () расчета площади квадратичной поверхности
119. Метод KvadrPov.Centroid () расчета центра тяжести квадратичной поверхности
120. Метод Vector.Centroid () расчета ЦТ групп квадратичных поверхностей
121. Метод Parallped.Volume () вычисления объема параллелепипеда
122. Метод Vector.C6sides.ss () вычисления объема шестигранника
123. Метод GetDocObject(nBody) для вычислений объема, ЦТ и точки от u,
v, t тел
124. Метод Volume(Nmb) вычисления объема группы тел
125. Метод Centroid () вычисления центра тяжести группы тел
126. Oбъект Pxy(x, y) вычислений точек на поверхности от переменных x и
y
127. Универсальный метод Px (x, n) вычисления точки на полилинии и на
других линиях от координаты x
128. Методы Polyline.PYmin(n) и Polyline.PYmax(n) вычисления точек максимума и минимума по y на полилинии
129. Методы PolyPov.PZmin() и Pmax=PolyPov.PZmin() вычисления точек
минимума и максимума по z на полиповерхности
130. Свойство DistPointSline () вычисления расстояния от точки до прямой
131. Свойство DistPointPlane () вычисления расстояния от точки до плоскоcти
132. Свойство NvTrian () площадь треугольника
133. Свойство NvParal() площадь параллелограмма
134. Метод VecOtr () определение вектора отрезка
135. Свойство L = Polyline.Length — длина полилинии
70
136. Универсальное свойство Area () вычисления площади полилинии и поверхностей
137. Универсальный метод Centroid() вычисления центра тяжести объектов
138. Метод DlinaOtr () вычисления длины отрезка
139. Метод otrezok.ugl() определения угла наклона отрезка к оси х
140. Метод AngleWith( tri2 ) определение угла между двумя плоскостями
141. Свойство SetInvisibleAll() очистка экрана
142. Свойство Delay t задержка изображения
143. Свойство InsertIn() вставить (привязать) в объект
144. Метод Obj.TurnAround () вращение объекта вокруг произвольного оси,
заданной двумя точками
145. Метод CreateGroup () создания группы в структуре
146. Свойство Width = H — толщина линии
147. Свойство SetColor () — цвет линии
148. Свойство SetWidthColor — толщина и цвет линий
149. Свойство Polyline.SetFillColor() заливки цветом полилинии
150. Свойство SetFillColor() задания цвета линий, полилиний и других объектов
151. Свойство LastNmb() присвоение номера объекту
152. Свойство WithSave = True/False изображать /не изображать объект
153. Свойство RefreshImage() оставить рабочее окно после выхода из
скрипта
154. Свойство Import () импортирование файла .dxf
155. Свойство SaveImage "tst.bmp" сохранения рабочего окна системы
156. Средство (функция) new ActiveXObject() создание нового локального
объекта
157. Свойство a.Import () импортирование Mesh-файлов *.x
Приложение: МЕТОДЫ ДЛЯ ЗАДАЧ ЧЕРЧЕНИЯ
158. Метод Bolt () расчета длины болта выборка из таблиц других его размеров и отрисовка
159. Метод S = Gaika (d, р1, р2) выбор размеров гайки и отрисовка ее каркаса
160. Метод Bltsd () расчета и отрисовки упрощенного болтового соединения
161. Метод Hpilka () расчета длины шпильки, выборка из таблиц размеров
и отрисовка
162. Метод Shpsd () расчета и отрисовки упрощенного шпилечного соединения
163. Метод Percyl () пересечения двух цилиндров
164. Метод Persf () построения линии пересечения вертикального цилиндра и сферы
165. Метод Kulachek () для расчета и построения контура кулачка
166. Метод Listpr1() задания детали с наклонным сечением
167. Метод Listpr2g() построения детали без сечения
168. Метод Listpr2 () построения детали № 2 (исполнение 1)
169. Метод Listprv2 () построения детали № 2 (исполнение 2)
170. Метод Listprv3 () построения детали № 2 (исполнение 3)
71
Приложение I.
Диагог и методы — тест-обучение
Тест-контролируюшие и обучающие карты и обращения к обучающим
скриптам даны на странице
http://vm.msun.ru/V_gr_2004.htm.
На прилагаемом диске тест обучающие карты по диалог и методы собраны в соответствующих разделах..
Есть два варианта тестирования:
1. При подключенной машины к Интернету с обращениями к обучающим скриптам и PNG- графике и протоколам
2. Автономно – через тест-карты с ответами. Здесь вопросы поставлены так, что на них можно ответить без обращения к скрипту. Цель в легком режиме проверить и закрепить прочитанный материал по
темам «Диалог» и «Методы». При чтении вопросов закройте ответ и
смотрите, правильно ли вы на них ответили.
Приложение II
HTML
HTML — основная составляющая скрипт-программирования.
Полная
спецификация
HTML
находится
на
сервере
W3C
(http://www.w3.org/).
На прилагаемом диске вы найдете краткий курс по НТЛ
Оглавление
Что необходимо знать и уметь для работы c HTML-файлами?
Что необходимо для начала работы?
Обзор языка HTML
Как насчет графики в HTML?
Что для освоения HTML необходимо?
Как устроен HTML-документ?
Скрипт 1.1. «Курсанту МГУ привет!»
Обязательные метки <html> ... </html>
Скрипт 1.2. Выравнивание текста.
Оформление текста внутри абзаца
Скрипт 1.3. Метка <BR> и гимн Морского университета.
Метка <HR>
Скрипт 1.4. Метка <HR>
Форматирование шрифта
Скрипт 1.5. Форматирование шрифта.
72
Организация текста внутри документа. Абзацы
Скрипт 1.6. Абзацы.
Скрипт 1.7. Нумерованные списки.
Организация текста внутри документа. Абзацы
Скрипт 1.6. Абзацы.
Скрипт 1.7. Нумерованные списки.
Форматированный текст: <PRE> ... </PRE>
Скрипт 1.8. Форматированный текст.
Скрипт1.9. Текст с отступом.
Гиперссылки
Скрипт 1.10. Тэг перехода на оглавление курса.
Ссылка на документ на другом сервере
Скрипт 1.11. Тэг перехода на оглавление курса.
Ссылки и на выгрузку
Скрипт 1.12. Послать сообщение.
Изображения рисунков в HTML-документе
Скрипт 1.13. Изображения рисунков в HTML-документе.
Цветовая гамма HTML-документа — цвет шрифта и фона
Таблицы
Скрипт 1.14. Форматирование таблиц.
Контрольные вопросы по HTML-коду
Приложение III
JavaScript
Введение в JavaScript
Что необходимо при программировании на JavaScript?
Что JavaScript может?
Создание простых сценариев на HTML
Скрипт 1.1. Использование дескриптора Language.
Скрипт 1.3. Заголовок страницы.
Где разместить дискриптор <Script>?
Скрипт 1.3. Заголовок страницы.
73
2. Простые сценарии на JavaScript
Скрипт 2.1. Отображение сообщения: Здравствуйте, курсант Сидоров!
Как броузер выполняет страницу?
Скрипт 2.2. Сообщение, когда страница была вами обновлена.
Функция JavaScript
Скрипт 2.3. Вызов функции.
Обработка событий
Скрипт 2.4. Обработка событий.
3. Знакомство с переменными
Что такое переменная?
1) Создание имени переменной (объявление переменной)
2) Присвоение значения переменной
3) Использование переменной в операторах сценария
Скрипт 3.1. Объявление, инициализация и использование переменной при выводе ее значения на экран.
Инициализация переменной путем обращения к пользователю
Скрипт 3.2. Инициализация переменной путем обращения к пользователю.
Использование управляющей последовательности
Скрипт 3.3. Использование управляющей последовательности.
4. Работа с функциями
Структура функции
Вызов функции
Скрипт 4.1. Вызов функции.
Скрипт 4.2. Вызов щелчком функции.
Скрипт 4.3. Передача значения функции.
Скрипт 4.4. Передача функции нескольких значений.
Получение значения функции
Скрипт 4.5. Подсчет суммы чисел.
Локальные и глобальные переменные
Скрипт 4.6. Локальная переменная: «Я в области действия». Часть1.
Скрипт 4.7. Локальная переменная: «Я в области действия». Часть2.
Использование глобальной переменной
Скрипт 4.8. Демонстрация глобальной переменной.
74
Рекурсивные функции
Скрипт 4.9. Демонстрация рекурсивной функции.
Зачем рекурсивные функции?
Скрипт 4.10. Использование рекурсии для вычисления отчислений
на разделение прибыли.
Как избежать бесконечной рекурсии?
Скрипт 4.11. Предотвращение бесконечной рекурсии.
5. Построение выражений JavaScript
Скрипт 5.1. Сложение двух чисел.
Оператор приращения — увеличения значения переменной на единицу
Скрипт 5.2. Сравнение операторов приращений.
Скрипт 5.3. Использование операторов вычитания и отрицания.
Скрипт 5.4. Использование операторов уменьшения.
Скрипт 5.5. Использование оператора умножения.
Скрипт 5.6. Вычисление стоимости товара без учета налогов.
Оператор деления с остатком Скрипт 5.7. Использование оператора деления с остатком для определения високосного года.
Скрипт 5.8. Использование оператора присваивания сложения.
Скрипт 5.9. Объединение строк и чисел: возникновение проблемы.
Скрипт 5.10. Объединение строк и чисел: решение проблемы.
Скрипт 5.11. Сравнение двух значений.
Использование условного оператора
Скрипт 5.12. Определение високосного года.
Логические операторы:
Скрипт 5.13. Проверка оператора AND.
Скрипт 5.14. Проверка оператора OR.
Скрипт 5.15. Проверка оператора NOT.
Скрипт 5.16. Расширенная проверка оператора AND.
Скрипт 5.17. Попытка вычисления стоимости товара.
Скрипт 5.18. Правильный способ вычисления товаров.
6. Настройка кода. Тестирование
Использование метода if() для принятия решения
Скрипт 6.1. Тестирование введенного значения.
Скрипт 6.2. Тестирование введенного значения с обратной связью.
75
Принятие множественных решений
Скрипт 6.3. Выполнение нескольких тестов над введенным значением.
Компоновка сложных операторов if()
Скрипт 6.4. Комбинирование тестов в операторе if().
Скрипт 6.5. Использование оператора swith() для определения,
сколько дней в текущем месяце.
7. Настройка кода. Циклы
Скрипт 7.1. Пример неэффективного кода.
Скрипт 7.2. Улучшение кода с помощью цикла while ().
Скрипт 7.3. Использование цикла while ().
Скрипт 7.4. Улучшения кода с помощью цикла for ().
Скрипт 7.5. Использование цикла for ().
Скрипт 7.6. Использование обратного отсчета в цикле for ().
Скрипт 7.7. Выполнение цикла while () один раз.
Скрипт 7.8. Простой пример использование цикла do...while().
Скрипт 7.9. Использование цикла do...while().
Скрипт 7.10. Простой пример использования оператора break.
Скрипт 7.11. Использования оператора break.
Скрипт 7.12. Использования оператора сontinue.
Устранение неполадок
8. Работа с числами. Объект Math
Методы объекта Math
Округление
Округление до определенного десятичного разряда
Скрипт 8.10. Имитация бросков игральной кости.
9. Работа с объектами
Управление свойствами объектов
Работа с методами объектов
Скрипт 9.1. Доступ к свойству.
Скрипт 9.2. Изменение значения свойства.
Скрипт 9.3. Использование цикла для получения списка свойств.
76
Скрипт 9.4. Отображения имен и значений свойств объекта.
Скрипт 9.5. Выполнение метода.
10. Обработка событий
Скрипт 10.1. Использование обработчика событий.
Скрипт 10.2. Использование функций в качестве обработчика.
Скрипт 10.3. Обработка событий Focus.
Скрипт 10.4. Обработка событий Blur.
Скрипт 10.5. Обработка событий Change.
Скрипт 10.6. Обработка событий KeyDown KeyUp.
Скрипт 10.7. Определение значений определенных клавиш.
Скрипт 10.8. Обработка событий Click.
Скрипт 10.9. Обработка событий MouseDown и MouseUp.
Скрипт 10.10. Предотворение щелчка правой кнопкой мыши.
Скрипт 10.11. Обработка событий Blue.
11. Работа с массивами
Объявление массива (операция обязательная)
Использование цикла для заполнения массива
Создание многомерных массивов
Использование объекта Array ()
Свойства объекта Array
Количество элементов. Свойство Length
Добавление новых свойств и методов
Методы объекта Array
Конкатация для создания нового массива. Метод concat()
Преобразование элементов массива в строку. Метод join()
Удаление последнего элемента. Метод pop()
Наполнение массива данными
Скрипт 11.2. Наполнение массива данными.
Скрипт 11.3. Использование цикла для наполнения массива.
Скрипт 11.4. Эффективный сценарий, использующий массивы и
циклы.
Скрипт 11.5. Использование двухмерного массива.
Скрипт 11.6. Использование свойства protype для добавления
свойства.
Скрипт 10.7. Использование метода concat() для объедения двух
массивов.
Скрипт 10.8. Использование метода join() для создание строки.
Скрипт 10.9. Ипользование метода reverse().
Скрипт 11.10. Метод sliсe() удаления первого члена массива.
Скрипт 11.11. Метод sort() — способ упорядочивания элементов
массива в алфавитном, числовом порядке.
77
Скрипт 11.12. Метод spliсe() создания нового массива из элементов
существующего.
Скрипт 11.13. Иcпользование свойства protype() для замены метода
pop().
Скрипт 11.14. Иcпользование свойства protype() для замены метода
push().
Скрипт 11.15. Иcпользование свойства protype() для замены метода
shift().
Скрипт 11.16. Иcпользование свойства protype() для замены метода splise().
Скрипт 11.17. Иcпользование свойства protype() для замены метода unshift().
12. Взаимодействие с пользователем
13. Отладка кода
Стратегия отладки
Десять часто встречающихся ошибок
Некоторые советы при написании скриптов, исключающих многие ошибки
Скрипт 13.1. Использование метода alert() для отображения значений.
Скрипт 13.2. Использование массива для сохранения и отображения нескольких значений.
Скрипт 13.3. Использование отдельного окна для отображения
значений.
Примеры использования DHTML
Скрипт 1 Всплывающая подсказка.
Скрипт 2. Простая горизонтальная прокрутка текста.
Скрипт 3. Прокрутка от правого края.
Скрипт 4. Добавление цикла.
Скрипт 5. Простая вертикальная прокрутка текста.
Скрипт 6. Вертикальная прокрутка сучастием цикла.
Скрипт 7. Вертикальная прокрутка нескольких сообщений.
Скрипт 8. Постоянно отображаемый элемент <div>.
Скрипт 9. Простое слайд-шоу.
Скрипт 10. Слайд-шоу с автоматическим отображением рисунков.
Скрипт 11. Анимационное удаление изображения.
Скрипт 12. Слайд-шоу с произвольным преобразованием рисунков.
Скрипт 13. «Стирание» сменяющегося кадра.
Контрольные вопросы
78
Приложение III
PNG и GD-графика
Данное приложение является уникальной разработкой графического
кода для JavaScript-программирования на базе PNG-графики и GD-графики.
Автором этих разработок является Виктор Герасимов и поэтому по вопросу
"кухни" установки (под Unixe) обращайтесь к нему. На странице
http://vm.msun.ru/V_gr_2004.htm
и в скриптах на диске рассматривается только практическая часть программирования применительно к этой графики.
Скрипт 5.1. Зарезервированное поле для PNG-графики.
В скрипте 5.1. размеры окна заданы по умолчанию,
в скрипте 5.1d размеры поля рисунка задаются.
1. Задание отрезка прямой
Скрипт 5.3. Изображение отрезка прямой в зарезервированном окне
2. Задание текста
Скрипт 5.4. Координатные оси, и два текста.
3. Задание текста как переменной величины
Скрипт 5.5 Задание текста как переменной величины.
4. Задание окружности
Скрипт Задание круга как полигон.
Скрипт Задание сегмента круга как полигон.
Скрипт Задание сектора круга как полигон.
5. Задание треугольника как полигона
Скрипт 5.7 Задание треугольника как полигона.
6. Задание четырехугольника как полигона
Скрипт 5.8 Задание четырехугольника как полигона.
7. Формирование многоугольника через полигон
Скрипт 5.9 Задание полигона
8. Задание полилинии через цикл
Скрипт 5.10. Задание многоугольника.
9. Полилиния с заданием координат точек в диалоге
Скрипт 5.11 Полилиния с заданием координат точек в диалоге.
10. Вычисление длины отрезка прямой через диалог
Скрипт 5.12. Изображение отрезка прямой в зарезервированном окне.
11. Вычисление параметров окружности с вводам данных (центра окружности и радиуса) в диалоге
Скрипт 5.14. Задание комментарий и ссылок на странице в конце
диалога.
12. Формирование графика с заданием координат точек (до 10) в диалоге. Вычисление y = f(xi), Fmax, Fmin
Скрипт 5.15. Формирование графика. Вычисление y = f(xi), Fmax,
Fmin
13. Формирование различных видов графиков.
79
Скрипт 5.16. Формирование различных форм графиков.
14. Анализ двадцати элементарных функций y = f(x).
Скрипт. Анализ двадцати элементарных функций y = f(x).
15. Анализ двадцати важнейших параметрических кривых
Скрипт. Двадцать важнейших параметрических функций.
16. 2D-графика. Правильные фигуры
Скрипт. Правильные фигуры.
17. Построение графиков с формированием координат точек в файле
*.js
17.1. Построение отрезка прямой
Скрипт 5.17. Построение отрезка с заданием координат точек в
файле Bd_otrezok.js.
Скрипт. Расчет электронагревателя с использованием номограмм.
18. Формирование данных из диалога в отдельный файл *.js
19. Округление до определенного десятичного разряда
80
Приложение V.
Скрипты на базе JavaScript, GD-графики
и системы Вектор
Что такое скрипт?
Скрипт — это сценарий который включает: задание входных и выходных параметров, выполнение действий (диалог), просмотр информации в
цифровом и графическом видах, мультимедиа и т.п.
Через скрипт можно реализовать:
— задание данных и их оперативное изменение;
— получение вычисляемых параметров и их анализ;
— анализ входных и выходных параметров с помощью выводимых графиков;
— разбиение задачи на ее составляющие и построение гиперсечений;
— оперативный анализ программного и математического кода задачи;
— связь с другими программами, написанными на JS;
— связь с базами данных и номограммами;
— выход из скрипта в другие прикладные системы (например, систему
Вектор), где более углубленно решить задачу и, если надо, вернуться на новом качественном уровне.
Все это апробировано на страницах сайта: http://vm.msun.ru в разделах:
«150 скриптов по случаю и не случаю», «Nоу-hay, «JavaScript и векторнографическое программирование» с тест-картами контроля и обучения.
«JavaScript и векторно-графическое программирование» — учебный курс, который с помощью различных методик, пассивных, активных и
творческих, предназначен для написания скриптов для самых различных приложений. Курс поставлен по следующей схеме:
— чтение справочной (help) информации;
— простая механическая «набивка» текстов скриптов — такая форма
освоения написания скриптов полезна, и ее не следует избегать;
— отладка набранных текстов скриптов — здесь уже требуются терпение, настойчивость и пытливость, чтобы скрипт «заработал»;
— анализ работы скрипта в тест-картах обучения и контроля.
— самостоятельное написание скрипта.
Создание скрипта
Существует много программ, с помощью которых можно писать
скрипты, причем они с одним общим свойством — пишутся для Интернета,
где работа (просмотр Web-страниц и т.д) осуществляется браузером — программой, пригодной для просмотра HTML-файлов. Самая распространенная
программа — Microsoft Internet Explorer, с помощью которой можно не только просмотреть HTML-файлы, но и производить отладку, причем не в сети
Интернет, а локально за компьютером, не подключенным к Интернет.
81
Страница (считай, самый простой скрипт) создается с помощью системы HTML, которая есть не что иное, как основанная на тексте кодовая система, используемая для того, чтобы сообщить броузеру (Internet Explorer), каким образом следует отображать информацию. Есть системы, позволяющие
автоматически создавать HTML-файлы, однако, чтобы работать с JavaSсript
— где без написания своей части программы не обойтись, — умение работать
с текстом, созданием таблиц, размещением в них других таблиц, выводом
входных и выходных переменных, формированием кнопок «Выполнить»,
«Изобразить» и т.д. знание элементарных кодов HTML необходимо. Для начальной работы со скриптами достаточно небольшого курса по HTML, а потом, используя Help, можно более углубленно изучить эти коды. Для написания скриптов требуется полноценное изучение JavaScript.
Другой составляющей скриптов является графика, которая в JavaScript
отсутствует. Для решения этой проблемы реализованы уникальные разработки графического кода на базе PNG- и GD-графики. Автором этих разработок
является Виктор Герасимов, и поэтому по вопросу установки и практического
использования данной графики нужно обращаться к нему.
Учебный курс «JavaScript и векторно-графическое программирование»
разбит на 9 уроков:
Урок 1. HTML
Урок 2. GavaScript
Урок 3. GavaScript
Урок 4. GavaScript
Урок 5. PNG и GD-графика
Урок 6. «Вектор»: методы
Урок 7. «Вектор»: методы
Урок 8. «Вектор»: диалог
Урок 9. Обзор: 3D-графика в вопросах и ответах.
По каждому уроку предусмотрен тест-контроль и упражнения.
На Web-страницах мировой паутины написано множество готовых
скриптов сервисного характера и мало скриптов для инженерных, художественных или домашних практик. Скрипты, реализованные в данном приложении, в какой-то степени, решают эту проблему. При этом готовые скрипты
или какую-либо их часть можно использовать в качестве шаблонов при написании других скриптов. Можно использовать методы, как отдельный скрипт
— тут их применение в качестве шаблона несомненно полезно. Изучение
JavaSript, системы Вектор и их методов является несложным. В том случае,
когда скрипты дублируют методы системы Вектор, они могут работать в среде Интернет с оригинальной PNG и GD-графикой.
I. Векторно-графический анализ
1. Алгоритмизация. Точка на прямой линии (на отрезке).
2. Алгоритмизация: параллели, меридианы и точка p на плоскости от u, v.
3. Структуризация и метод случайных чисел.
4. Оптимизация.
5. Найти минимальное число (и номер числа) из заданного набора чисел.
82
6. Задача о движении пешехода по скошенному и нескошенному лугу.
7. Задача Бернулли. Найти линию наискорейшего спуска.
8. Задача о расхождении судов.
9. Энергосберегающее движение судна.
10. Линейная аппроксимация данных эксперимента. Найти линейную зависимость y = b + kx, наиболее близко лежащую к экспериментальным данным.
11. Определить рост человека в зависимости от возраста.
12. Определить коэффициенты экстрополирования роста человека от
возраста.
13. Определить коэффициенты экстрополирования фондоотдачи в условиях производства.
14. Вычисление технико-экономических показателей динамики производства (более полный расчет на странице зарегистрированных пользователей).
15. Парето-оптимальное моделирование. При различных условиях о 2-х
городов построить завод в заданной области ограничений.
16. 4-критериальная задача.
17. 2-критериальная задача. 1. Определить зону Парето при максимуме
прибыли и минимуме расходов. 2. Определить минимум расходов при заданной прибыли.
18. Зона Парето в 3-критериальной задаче о трех городах: 9 условий на
мax/мin и компромисс.
19. Оптимизация местоположения космических станций и пункта заправки при различных условиях.
20. Графы, сетевой график и сетевое планирование.
21. Метод Богданова-Белмана безусловной оптимизации.
22. Линейное программирование: при заданных ограничениях, найти
мax /мin ЦФ.
23. Задача Тартальи: разделить число на такие две части, чтобы произведение их произведения на их разность было максимальным.
24. Задача о посылке: при заданных ограничениях найти ее максимальный объем.
25. Комбинаторика. Магический квадрат Ло Шу (графики и вычисления).
26. Метод Монте Карло. Магический квадрат Ло Шу (только вычисления).
27. Формирование кривой Безье и определение на ней мах/min.
28. Анализ 20 элементарных функций y = f(x).
29. Анализ 20 важнейших параметрических кривых.
30. 173 рельефа: анализ и построение изолиний.
31. Найти максимум прибыли при фиксированных затратах.
32. Как поймать рыбу? Диаграмма Парето на примере непойманной рыбы.
33. Методы снижения издержек — диаграмма Парето расходов и себестоимости.
34. График Парето: смешение разнородных категорий.
35. График Парето.
36. Расчет энтальпии дымовых газов судового котла в зависимости от
температуры.
37. Интерполяция: построение нагрузочной характеристики котла.
38. Тепловой расчет судового водотрубного котла.
83
II. Начертательная геометрия
1. 2-мерное пространство и правильные фигуры.
2. Модель. 3-мерного пространства.
3. Точка. Комплексный и аксонометрические чертежи.
4. Конкурирующие точки на координатные плоскости.
5. Прямая. Комплексный и аксонометрические чертежи.
6. Прямые уровня.
7. Проецирующие прямые.
8. Точка на прямой от переменной х.
9. Плоскость. Комплексный и аксонометрические чертежи.
10. Плоскости уровня.
11. Проецирующие плоскости.
12. Точка на плоскости от переменных x и y.
13. Горизонталь и линия ската плоскости.
14. Пересечения горизонтальных проекции отрезков.
15. Пересечения фронтальных проекции отрезков.
16. Перпендикуляр к горизонтали из ее точки в направлении к точке D.
17. Перпендикуляр к фронтали из ее точки в направлении к точке D.
18. Перпендикуляр-фронталь к отрезку общего положения.
19. Перпендикуляр-горизонталь к отрезку общего положения.
20. Пересечение прямой с плоскостью.
21. Пересечение двух плоскостей.
22. Определение натуральной величины отрезка прямой методом прямоугольного треугольника.
23. Перпендикулярность прямых, расстояние от точки до прямой.
24. Перпендикулярность прямой и плоскости, расстояние от точки до
плоскости.
25. Метод замены плоскостей проекций на примере с точкой.
26. Преобразование прямой в положение уровня и точку.
27. Преобразование плоскости в проецирующую и уровня.
28. Метод вращения вокруг горизонтально-проецирующей оси на примере с точкой.
29. Повернуть прямую общего положения (ОП) до положения фронтали.
30. Методом вращения преобразовать плоскость ОП до положения уровня.
31. Метод плоско-параллельного перемещения: определить НВ плоской фигуры (скрипт не доделан).
32. Определить расстояние от точки до прямой (с выходом в систему Вектор).
33. Определить расстояние от точки до плоскости (------//-----).
34. Определения точки на заданном расстоянии от плоскости (------//-----).
35. Кратчайшее расстояние между двумя прямыми (решение через Вектор).
36. Задать прямую, параллельную заданной прямой.
37. Задать плоскость, параллельную другой плоскости.
38. Задать плоскость, перпендикулярную прямой.
39. Перпендикуляр от плоскости, заданной длины.
84
40. Задать плоскость по данным своего варианта (подготовительный скрипт
для решения задач на пересечения прямой с плоскостью и двух плоскостей).
41. Задать две плоскости двумя треугольниками.
42. Найти линию пересечения 2-x плоскостей ABC и DEF (определяется в системе Вектор, отрисовывается в *.png).
43. Сечение конуса (пирамиды) и цилиндра (призмы) проецирующей
плоскостью.
44. Построение пирамиды с вершиной на заданном расстоянии от
плоскости основания.
При этом вычисляются: 4-я точка основания, вершина пирамиды и мах
линейной фнкции F=x + y + z (учитывая, что пирамида - это многогранник
ограничений целевой функции).
45. Сечение 4-гранной пирамиды фронтально-проецирующей плоскостью.
46. Формирование управляемой линии Безье.
47. Пересечение прямой с кривой Безье.
48. Полигон. Формирование полигона с помощью функций.
49. Полигон в пространстве. Полигона 3D через функции.
50. Линия пересечение двух фронтальных цилиндров.
51. Линия пересечения цилиндра и сферы.
52. Задание точки на сфере по широте и долготе.
53. Расстояние между двумя точками на сфере.
54 Конус, развертка, расчеты: ЦТ, площадь, объем.
55. Усеченный конус.
56. Усеченный цилиндр.
57. Цилиндр между линией и плоскостью (тени).
III. Начертательная геометрия многомерного пространства
(НГМП) и ее приложения
1. Модель 4-мерного пространства: 4D-аксонометрия (теория из книги).
2. Модель 4-мерного пространства: разнесенные 3D аксонометрическиеи 2D ортогональные координатные плоскости проекций.
3. Модель 4-мерного пространства: ортогональный чертеж (оптимальный вариант).
4. Модель 4-мерного пространства: ортогональный чертеж (из 5 проекций).
5. Точка. 4D-аксонометрия.
6. Точка. Разнесенные 3D аксонометрические и 2D ортогональные проекции.
7. Точка. Орто-ортогональный чертеж (оптимальный вариант).
8. Точка. Ортогональный чертеж (еще более оптимальный вариант —
5 проекций).
9. Точка. Ортогональный чертеж (3 проекции).
10. Прямая. Ортогональный чертеж.
11. Плоскость. Ортогональный чертеж.
12. Гиперплоскость. Ортогональный чертеж.
13. Прямая перпендикулярна гиперплоскости, если она перпендикулярна
трем пересекающимся прямым, лежащей в этой гиперплоскости. Три такие прямые могут быть: дважды фронталь, дважды горизонталь, и дважды xt-уровня.
14. Гиперкуб: 4D-аксонометрия.
15. Две плоскости в общем случае пересекаются в точке.
85
16. Модель 7-мерного пространства x, y, z, y1, y2, z1, z2, как основа
моделирования формы поверхности на заданном контуре (алгоритм решения
задачи на примере одной точки).
17. Моделирования поверхности на заданном контуре (без управления формой).
18. Моделирования управляемой поверхности на заданный контур
(простой случай).
19. Моделирования управляемых линий контура и поверхности (через
систему Вектор).
20. Моделирования управляемых линий контура Безье и поверхности
(автономно без Вектора).
21. 2-мерные функции: F(x,y) = x*x + y*y и F(x,y) = |(x*x + y*y)-c| → min
22. 3-мерные функции: F(x,y,z) = x*x + y*y+z*z и F(x,y,z) = |(x*x + y*y+z*z)-c| → min
23. Номограммы: построение из CorelDraw в скрипт.
24. Кривая Лагранжа по 4-м точкам для построения линий номограмм.
25. Формирование линии из 2-х кривых Безье для использования в номограммах..
26. Номограммы для расчета электронагревателя.
27. Расчет электронагревателя с использованием номограмм.
28. Номограммы для расчета трансформатора.
29. Расчет трансформатора.
30. Сетка и вычисление на ней точки от переменных х и y.
31. Сетка и вычисление по ней 2-й абсциссы от переменных х и y.
32. Создание сетки по v и вычисление по x и y переменной v.
33. Создание сетки по v и вычисление по x и v переменной y.
34. Создание сетки кривых линий по v и вычисление по x и v переменной y.
35. Cетка по двум линиям Безье и вычисление по x и v переменной y.
36. 2-мерные поверхности: построение сечений, нахождение min /max
(скрипт-шаблон**).
37. Исследование 2-мерных поверхностей: min /max, сечения в точке минимума.
38. Исследование гиперповерхностей: построение сечений, нахождение
min /max.
39. Исследование гиперповерхностей на min /max, сечения по ним.
40. Мin/max в 3-критериальной задаче и область Парето.
41. 4-мерная гиперповерхность F = f(x,y,z,t): построить сечение, вычислить min /max.
42. Исследование 4-мерных гиперповерхностей на min /max, сечения по ним.
43. 4-критериальная задача и область Парето.
44. 5-мерная гиперповерхность в 6-мерном пространстве: построить сечение и точку.
45. 6-мерная гиперповерхность в 7-мерном пространстве: сечение и точка.
46. 7-мерная гиперповерхность в 8-мерном пространстве: сечение и точка.
47. 8-мерная гиперповерхность в 9-мерном пространстве: сечение и точка.
48. 9-мерная гиперповерхность в 10-мерном пространстве: сечение и точка.
49. 10-мерная гиперповерхность в 11-мерном пространстве: сечение и точка.
50. Исследование 3-критериальная задача в 5-мерном гиперпространстве: пять различных условий на минимум и компромисс, зона Парето ***.
51. Оптимизация и зона Парето в задаче о 4-x городах на плоскости.
52. Оптимизация и зона Парето в задаче о 4-x космических станциях в
3D пространстве (оптимизация в 4D пространстве функции: F = f(x,y,z)).
53. Семь условий на оптимизацию в задаче о 4-x киберкосмических
станциях в 4D пространстве (оптимизация в 5D пространстве F=f(x,y,z,t)).
54. Семь условий на оптимизацию в задаче о 5-ти киберкосмических
станциях в 4D пространстве (оптимизация в 5D пространстве F = f(x,y,z,t)).
86
55. Найти максимум прибыли при фиксированных затратах для целевых функций от 3-х переменных (задача решается в 4-мерном пространстве).
56. Найти максимум прибыли при фиксированных затратах для целевых
функций от 3-х переменных, через построение гиперизолиний в системе Вектор.
IV. Черчение
1. Геометрическое черчение. Инвариантное задание кулачка (вычисления и изображение в системе Вектор).
2. Изображение контура (импорт .dxf) плоской детали и расчет: ЦТ,
площади и длины контура (при наличие системы Вектор).
3. Сечение геометрической фигуры (пирамиды, призмы) с отверстием.
4. Втулка цилиндра судового двигателя.
5. Построение контура и сечений деталей из линий .dxf через систему Вектор.
6. Проекционное черчение. Построение детали в трех проекциях автономно и в системе Вектор.
7. Проекционное черчение. Построение три разных детали в системе Вектор.
8. Детали в анимации и в аксонометрии (твердотельная форма деталей
сгенерирована в системе CG-Vetor).
9. По толщинам соединяемых деталей и номинальному диаметру, рассчитать длину болта и длину резьбовой части, выбрать из таблиц другие размеры (обращение к системе Вектор).
10. Гайка: рассчитать (выбрать из таблиц) и вычертить через скрипт в Векторе.
11. Шпилька. По толщине соединяемой детали и номинальному диаметру, рассчитать длину шпильки и длины резьбовых частей, выбрать из таблиц другие размеры. Отрисовать в системе Вектор.
12. Болтовое соединение. Сборочный чертеж: рассчитать и вычертить в
системе Вектор.
13. Шпилечное соединение: рассчитать и вычертить через скрипт в Векторе.
V. Основы художественного конструирования
1. Центр тяжести системы из трех прямоугольников (диалог — меню,
графика — рис.). Для художественного перевоплощения есть выход в систему Вектор.
2. Прямоугольники в раме (ЦТ, площадь, коэффициент заполняемости).
Cкрипт написан в формате Set Vector = CreateObject ("Vector.Document"),
также написана перед этим МК, что дает возможность писать МК и тело
скрипта одинаково.
3. Прямоугольник в раме — вычислить и нарисовать в .png (рисуется в
отдельном окне).
4. Полигоны — импорт в .dxf-формате — вычислить длину, площадь, ЦТ.
5. Построение теней на горизонтальной плоскости от заданного 3D полигона.
6. Перспектива комнаты (домашнее задание — 6 вариантов).
7. Построение перспективы пульта управления к двум точкам схода
(домашнее задание — расчет пульта в зависимости от роста студента).
8. Другие примеры см. в разделе: «Скрипты и программы для домашнего творчества и духовной практики».
87
VI. Основы конструирования туристических судов,
их изготовления и эксплуатации
1. Вычисление площади мидель-шпангоута, площади КВЛ и водоизмещения / заданы общие размеры судна и коэффициенты полноты /.
2. Вычисление некоторых параметров судна по мидель-шпангоуту.
3. Оптимальное движение яхты двумя галсами.
4. Расчет углов ветрового дрейфа.
5. Расчет остойчивости судна (более общий подход).
6. Остойчивость катамарана.
7. Наполнить танкер и рассчитать ЦТ (постановка проблемы).
8. Наполнить стаканы (не страшен нам ни дифферент, ни крен).
VII. Скрипты и программы для домашнего творчества и
духовной практики (девять откровений)
1. Рассчитать магический квадрат из Кашмира в Excel (с диаграммами).
2. Магический квадрат из Кашмира.
3. Магический квадрат из Кашмира с диаграммами по Парето.
4. Выбор картины к раме.
5. Подбор рамы (паспарту) к картине.
6. Медитация на тему черный и красный квадраты Малевича.
7. Театр теней 1.
8. Театр теней 2.
9. Выбор рам и паспарту к случайным картинам из заданного набора.
10. Выбор рамы, паспарту и фона экрана к случайным картинам.
VIII. Фреймовая организация работы со скриптами
1.Четыре скрипта в 4-х фреймах.
2. Скрипт и рисунок в фреймовой структуре.
3.Два скрипта при делении экрана на два вертикальных окна.
4. Фрейм из трех окон с двумя скриптами и одним рисунком.
5. Динамический фрейм
6. Плавающий фрейм.
7 Плавающий фрейм как окно скрипта на главной странице.
8. Фрейм из трех окон с со скриптом, рисунком и текстом.
9. Фреймовая структура.
VII. Определение параметров восстанавливаемых деталей —
пример решения технической проблемы
Для расчета параметров восстанавливаемых деталей может быть использовано скрипт-программирование с применением, численных методов и
векторно-графического анализа. Например: определить условия наплавки,
обеспечивающие заданную толщину наплавленного слоя при минимальном
припуске на последующую обработку. Задача двухкритериальная с тремя переменными: скорость наплавки, скорость подачи проволоки и шаг наплавки.
88
Задача решается построением поверхности отклика (изолиний) одной из гиперповерхностей, где, перебирая на изолиниях точки, можно найти максимум
2-й ЦФ. Построения изолиний и гиперизолиний, как средство анализа гиперповерхностей на максимум и минимум, выполняется в системе Вектор.
Для хранения информации и использования ее в скриптах разработаны
номограммы не в традиционном понимании — на бумагоносителях, а их компьютерный вариант. Такие номограммы позволяют «копить» данные для
комплексного исследования процесса, как единой оптимизирующей системы.
Обработка эксперимента и нахождение коэффициентов функциональных зависимостей с помощью факторного и векторного графического анализов с графиками по Парето делают процесс исследования и оптимизации в
скриптах реально приближенным к практике.
Скрипты (см. на сайте: http://vm.msun.ru/Now_hau.htm) даны в следующей последовательности: сначала относящиеся непосредственно к основам
восстановления деталей, а затем скрипты, которые с небольшой их модификацией могут быть использованы в общих вопросах судоремонта. Вот некоторые из них:
1. Вероятность безотказной работы и интенсивность отказов втулок
цилиндров двигателей.
2. Определение микротвердости чугуна.
3. Твердость от энергии удара и скорости обрабатываемой поверхности.
4. Расчет степени наклепа от числа проходов, силы удара и скорости
обрабатывания.
5. Оптимизация. Найти наибольшую твердость поверхности наклепа в
зависимости от скорости и энергии удара.
6. Найти min /max критериев оптимизации глубины наклепа, степени наклепа и глубины промина в зависимости от скорости, энергии удара и числа проходов.
7. Найти зону Парето при оптимизации критериев скрипта 6.
8. Анализ функций критической удельной нагрузки деклоновых и капроновых подшипников.
9. Исследование зазоров в деклоновых и капролоновых подшипниках.
10. Исследование интенсивности износа подшипников.
11. Обобщенный ожидаемый ресурс дейдвудных подшипников.
12. Ожидаемый ресурс службы деклоновых и капролоновых подшипников.
13. Хонингование и другие зависимости при обработке деталей.
14. Расчет глубины наклепа и промина и степени наклепа от числа проходов, скорости и энергии удара по номограмме и формулам.
15. Анализ упруго-прочностных параметров материала подшипников.
16. Исследование и оптимизация по восьми параметров наплавки как
единой системы.
17. Изолинии функций удельной нагрузки деклоновых и капролоновых подшипников.
18. Определение толщины прокладок тихоходных двигателей.
19. Номограмма определения допустимой нагрузки дизеля.
20. Номограмма для определения степени сжатия.
21. Номограмма расчета рулевых лопастных приводов.
22. Определение зазора в замке по износу ширины кольца и втулки.
23. Диаграмма Пампеля для расчета буксировочной мощности.
24. Согласование процессов в двигателе как единой системы.
25. Вычисление технико-экономических показателей динамики производства.
26. Методы снижения издержек — диаграмма Парето расходов и себестоимости или АВС-анализ расходов по реализации и общих административных.
89
Эти скрипты и множество подобных по курсам начертательная геометрия,
черчение, основы художественного конструирования, основы художественного конструирования судов, основы творчества, вы можете найти на сайте: http://vm.msun.ru
Содержание
I. ОСНОВНЫЕ ПРИНЦИПЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ В СИСТЕМЕ АРТ-ВЕКТОР.........................................3
II. ЗНАКОМСТВО С СИСТЕМОЙ ВЕКТОР ..............................................................6
1. Основные типы графики........................................................................................6
2. Основные типы работы..........................................................................................6
3. Объекты ...................................................................................................................7
4. Библиотека методов ...............................................................................................7
5. Импорт / Экспорт ...................................................................................................7
6. VBScript JavaScript .................................................................................................8
7. WordPad ...................................................................................................................8
8. Установка программы............................................................................................8
9. Интерфейс пользователя........................................................................................8
III. КОМАНДЫ ГЛАВНОГО МЕНЮ СИСТЕМЫ .....................................................12
1. Файл .......................................................................................................................12
2. Правка....................................................................................................................14
3. Вид .........................................................................................................................15
4. Линии.....................................................................................................................21
5. Контекстное меню................................................................................................34
6. Поверхности..........................................................................................................41
7. Тела ........................................................................................................................54
8. Картина..................................................................................................................57
9. Преобразования ....................................................................................................59
10. Начертательная геометрия...................................................................................63
МЕТОДЫ СИСТЕМЫ ВЕКТОР В СКРИПТАХ.........................................................66
ПРИЛОЖЕНИЕ I
Диалог и методы — тест-обучение ..................................................72
ПРИЛОЖЕНИЕ II. HTML .............................................................................................72
ПРИЛОЖЕНИЕ III. JavaScript.......................................................................................73
ПРИЛОЖЕНИЕ IV. PNG и GD-графика......................................................................79
ПРИЛОЖЕНИЕ V. Скрипты ........................................................................................81
90
README (краткая информация к компакт диску)
В.П.Болотов, Ю.И.Роньшин.
ВЕКТОР: ДИАЛОГ И МЕТОДЫ
Система векторной графики, скрипты и приложения
МГУ им. адм. Г.И.Невельского. Владивосток, 2004.
Для работы с системой "Вектор" необходимо установить (выполнить
инсталляцию) программ DirectX9 и Vector
1) DirectX 9 устанавливается программой dxsetup.exe из папки
DirectX9.
2) Система Vector инсталлируется программой SETUP.EXE из папки
VECTOR. Кроме того системы "Вектор" (новейшую версию) можно скачать
отсюда: http://vm.msun.ru/Cin++.htm, а DirectX 9 скачать непосредственно у
ее разработчика Microsoft Dawncenter по адресу: http://www.microsoft.com.
В других папках дается следующее:
ART - в папке собраны работы, полученный в системе "Вектор". Чтобы
посмотреть ту или иную экспозицию запустите файл: Art_ekcp.htm.
MEDIA - в этой папке даны готовые Mesh-файлы (с расширением .x),
которые можно импортировать в систему "Вектор"
DOC - здесь собраны файлы описания системы "Вектор" и приложений
в формате MicrosoftWord
TEACHER - здесь курсы обучения по HTM, JavaScript, PNG-GDграфике и непосредственно по системе "Вектор" - диалог и методы. Чтобы
выйти на главную страницу запустите файл: V_gr_2004.htm из папки
TEACHER.
Скрипты структурированы по дисциплинам и по применению (см. в
тексте книге). Файл Sript.htm запускается из папки TEACHER.
Примечание. Все, что дано на диске вы найдете в Интернете на сайте
http://vm.msun.ru в разделах "Обучение С++", "НОУ-ХАУ", "Учимся писать
скрипты и скрипты с графикой" и "150 скриптов: по случаю и не случаю".
Данный диск обеспечивает автономное (без подключение к Интернет)
инсталляцию систему "Вектор", и автономное работу тех скриптов, которые
не используют PNG-GD-графику. В случае подключения компьютера к Интернет скрипты с PNG-GD-графикой должны работать. Кроме того на диске
может быть дана другая (увлечение авторов) информация, в частности, по
экстремальным видам спорта - сплаву по горным рекам, прыжкам с водопадов с описанием в художественно-литературной форме.
91
В.П. БОЛОТОВ
Ю.И. РОНЬШИН
ВЕКТОР:
ДИАЛОГ И МЕТОДЫ
Программа для работы с векторной графикой в скриптах и приложениях
Электронная версия
Подписано в печать 18.05.2004. Формат 60 х 901/16. Бумага офсетная.
Гарнитура литературная. Печать высокая. Изд. 4003-03. Тираж 100 экз. Заказ № 1111.
Издано: Морской государственный университете им. адм. Г.И.Невельского
92
Download