Лекция 1. Метод изображений и введение в систему "Вектор"

С о д е р ж а н и е
Введение
1. Метод изображений.
1.1. Общие положения.
1.2. Компьютерная модель изображений трехмерного пространства.
1.3. Компьютерная модель изображений многомерного пространства.
2. Векторно-графическая алгоритмизация.
3. Проектирование как геометрическое место точек.
4. Параметризация в проектировании.
5. Введение в графическую систему “Вектор” и работа с графикой.
5.1. Организация макрокоманд (МК) - стандартные МК.
5.2. Работа с базовыми макрокомандами.
5.2.1. Построение отрезка прямой.
5.2.2. Построения окружности.
5.3. Краткий обзор языка "Калькулятор".
Пример. Задание чертежа плоской детали в параметрическом виде.

ВВЕДЕНИЕ

Геометрии - начертательная, аналитическая, дифференциальная, проективная, топологическая, Лобачевского  оперирует образами: точками, линиями, плоскостями, поверхностями, объемами. Одна геометрия отличается от другой методами исследований этих образов и задач с ними.

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

Аналитическая геометрия удовлетворяет те приложения, где необходимы более точные вычисления и наиболее подходит для решения задач на ЭВМ, т.к. ее аналитические выражения являются уже готовыми алгоритмами. Однако аналитические менее наглядны, чем графические; они, как правило, сложны: не всегда удается найти простой алгоритм решения той или иной задачи.

Поэтому хотелось бы иметь универсальный подход решения того разнообразия геометрических задач, которые встречаются на практике. Этому в наибольшей степени отвечают численные методы, которые в сочетании с графическими являются достаточно сильным инструментом решения традиционно сложных инженерных задач оптимизации, линейного и нелинейного программирования и т.д. Изучение численных (в частности, графочисленных) методов полезно начинать с тех задач, которые рассматривались в аналитической и начертательной геометрий.


1. Метод изображений

1.1. Общие положения

Как и в начертательной геометрии, при компьютерном моделировании различают центральное (перспективное) моделирование, когда проецирующие лучи исходят из центра (точки взгляда на объект) и параллельное проецирование, когда центр проецирования находится в бесконечности, а направление проецирования определяется вектором параллельного проецирования. В системе "Вектор" принято ортогонально-параллельное (проецирование, перпендикулярное экранной плоскости проекций) и центральное (перспективное) проецирование. В первом случае направление проецирования задается автоматически, во втором центр проецирования задается пользователем. С понятиями изображения на экране дисплея связаны масштаб изображения моделируемой сцены или объекта, автоматические изображения объекта в размерах экрана, задание начала координат той или иной проекции, цвета линий и т.п.

В системах "Вектор" и "CG" проекции фигур обладают теми же свойствами параллельного проецирования:
- проекция прямой, неперпендикулярной к плоскости экрана, есть изображение прямой, в противном случае прямая вырождается в точку;

- проекция плоской фигуры (плоскости), неперпендикулярной к плоскости экрана, есть плоская фигура, в противном случае плоскость вырождается в прямую линию;

- проекция плоской фигуры (плоскости), параллельная плоскости экрана, проецируется на нее в натуральную величину.

С понятиями изображения на экране дисплея связаны масштаб изображения моделируемой сцены или объекта, автоматические изображения объекта в размерах экрана, задание начала координат той или иной проекции, цвета линий и т.п.


1.2. Компьютерная модель изображений трехмерного пространства

В системе "Вектор" плоскость экрана (рис. 1, а) дисплея принята за координатную двумерную плоскость x'y': горизонтальная ось О'x' имеет положительное направление слева направо, вертикальная ось O'y имеет положительное направление снизу вверх. Ось O'z'  направлена из начала координат перпендикулярно плоскости x'y'. При этом координату z' можно задавать ее значениями с помощью джойстика: + z (кнопка "+"), - z (кнопка "-") или с помощью вещественных переменных x, y, z.

Различные положения проекций можно достичь заданием направления оси z декартовой системы координат объекта (местной системы координат) и относительным расположением плоскости xy по отношению к этой оси (может устанавливаться углом поворота ее вокруг оси z). При помощи такого подхода через задание вектора направления оси z и угла поворота плоскости xy можно моделировать любые аксонометрические и ортогональные проекции ортогонального проецирования на координатную плоскость чертежа.

Есть способ задания стандартных ортогональных и аксонометрических изображений осей и фигур (рис. 1, б) заданных ключом:
1 (или 0) - горизонтальные проекции,
2 - фронтальные проекции,
3 - профильные проекции,
4 - изометрии,
5 - диметрии и т.д.

   a)                                            б)                                                       в)
 Рис.1. Трехмерное моделирование в системе "Вектор"

Начало системы координат можно задавать в произвольной точке экрана, масштаб выбирается непосредственно операцией задания масштаба.


1.3. Компьютерная модель многомерного пространства

Для моделирования 4-мерной системы координат поступаем по схеме. Экранную систему координат 4-мерного пространства выбираем в виде чертежа Радищева: четвертая ось t совпадает с осью z и направлена от экрана (рис. 2).
Ввод координат точек 4-мерного пространства может осуществляться (рис. 3) для координат x, y, z в позициях  джойстиком, а t  - вещественным  числом.
При моделировании изображений многомерных фигур 4-мерного пространства ортогональная система координат задается в виде четырех взаимно перпендикулярных прямых, четырех трехмерных координатных подпространств и шести взаимно перпендикулярных двумерных плоскостей. Для решения тех или иных задач часто достаточны изображения объекта по отношению к этим плоскостям проекций. Систему координат 4-мерного пространства относим к мировой (экранной) системе координат, и уже в этой системе координат задаем точку привязки, векторы направления осей z и t и угол поворота плоскости xy вокруг осей z и t. (рис. 4).
Определив таким образом систему координат 4-мерного пространства, можно получить любые стандартные ортогональные и аксонометрические проекции.
 

   a)                                            б)                                                       в)
Рис.2. Изображение осей стандартных проекций  4-мерного пространства

В модулях Gipvec и Optvec системы “Вектор” реализовано задание ортогональных двумерных (6 проекций) и трехмерных проекций 4-мерного пространства. Причем все 6 положений (рис. 2,в) ортогональных проекций определяются заданием начала систем координат на yz и zt проекциях.

Все моделируемые объекты можно изображать в аксонометрической проекции, задавая в состоянии "Аксонометрия " следующие параметры:
  - точку привязки начала системы координат,
 - вектор оси z,
 - вектор оси t,
 - угол вращения плоскости XОY вокруг оси z.


2. Векторно-графическая алгоритмизация

Алгоритмизация - это правила по которым происходит формализация исходных данных и работа с ними. Более подробно об этом во второй теме курса. Здесь же коснемся момента, связанного с изображением графических образов - точки и отрезка прямой тесно связанных с векторной алгеброй.
Точка, прямая - это собственно есть вектора, с которыми, как известно из векторной алгебры, можно выполнять различные алгебраические действия - складывать, умножать на вещественное число и т.д.
Величины, значения которых определяются размером и направлением в пространстве, называются векторами. Геометрически вектор - это направленный отрезок в пространстве, определяемый начальной точкой p0 и конечной p1. Длина вектора называется его модулем.
Координаты вектора ОР, отнесенные осям координат называются декартовыми координатами точки Р.
В векторно-графической алгоритмизации ключевым задачами являются:
- расстояния между точками (рис. 9, а);
- точки на прямой на заданном расстоянии  от заданной точки (рис. 9, б);
- точки на прямой, движущейся по прямой с заданной скоростью в течении времени t  от заданной точки и т.д (рис.9, в).

Расстояние между двумя точками (вектор-функциями) р1-р2 пространства определяется модулем разности векторов-функций начальной и конечной точек:
s = |p1 - p2| или, используя координаты (составляющих) векторов, можно сформулировать следующее определение: расстояние между двумя точками (векторами-функций точек) пространства равно корню квадратному из квадратов разностей одноименных координат этих точек: s = sqrt((x1 - x1)*(x1 - x1) + (y1 + y2)*(y1 + y2)) + ... (в зависимости от размерности векторов)).

Рассмотренные задачи важны для решении многих геометрических задач графочисленными методами. В прикладных задачах вектор часто связан со скоростью его движения, весом, массой и т.д. Так, например, требуется на прямой р1-р2 определить положение точки p, если известно, что она движется  от точки p1 к точке р2 с заданной скоростью v в течении времени t. Уравнение нахождения точки от заданной в направление единичного вектора известно:
p = p1 + s* Pед
где
Pед - единичный вектор, для отрезка прямой р1-р2 определяется
Pед= (p2-p1)/|p2-p1|.
Расстояние, скорость и время связаны соотношениями:
v=s/t,    t = s/v,    s= vt.
откуда
p = p1+ v* t* Pед= p1 + v* t* (p2-p1)/|p2-p1|

Инженерные расчеты обычно включают  арифметические операции с целыми и вещественными переменными  и  типа точка, тригонометрические, логические, рекурсивные (организация циклов) операции и непосредственно графические.

Так, например, задание отрезка прямой характеризуется заданием начальной и конечной точек отрезка и операцией визуализации отрезка. При этом значения начальной точки p1 (ее координаты x1,y1,z1) могут быть присвоены ранее и затем поставлены в специально отведенные поля операции "Начало отрезка". Таким же образом можно задать вторую точку и затем произвести визуализацию.

Группируя операции и макрокоманды, можно собрать команды в файл (макрокоманду - МК) более сложных геометрических построений. Эти макрокоманды можно объединять в библиотеки и в нужный момент использовать по назначению. Такие библиотеки называются геометрическим (математическим) программным обеспечением решения инженерных задач.

Алгоритмические методы в графических системах можно классифицировать:
- построения непосредственно геометрических образов, например, на аналогах движения в физике или геометрическом месте точек,
- параметризации геометрических операций и построений.
Известно, что прямая или кривая линии - это траектории однопараметрического движения точки по тому или иному закону (зависит, например, от времени). Структурировать эти движения удобно с помощью векторно-параметрического подхода, подразумевая, что вектор -это вектор-функция точки в геометрическом пространстве и что вектор точки определяется набором ее координат.
В этом плане имеется очень удобное задание отрезка прямой и плоскости.

Уравнение отрезка прямой  между двумя точками можно записать в следующем виде:
p = (1-t)*p1 + t*p2     (2)
или покомпонентно:
x = (1-t)*x1 + t*x2
y = (1-t)*y1 + t*y2
z = (1-t)*z1 + t* z2
0 > t < 1 .
 
 
Рис. Векторное и векторно-покомпонентное задание точек на прямой

В обоих случаях точка на прямой задана в параметрическом виде и зависит от одного переменного параметра t, причем независимо от того, как прямая задана: в плоскости,  в 3-мерном и больше размерности пространстве.
Закон движения вектор-функции точки p на прямой (2) является линейным (определяется линейными весами: при точке р1 весом - (1-t) и при р2 - весом  t ). При t = 0 текущая точка p совпадает с начальной, а при t = 1  -  с р2.

Плоскость (или косая плоскость) - это однопараметрическое множество линий:
l = (1 - v)* l1 + v* l2
или двухпараметрическое множество точек:
p = (1-v)*((1-t)*p1 + t*p2) + v*((1-t)*p3 + t*p4),
          0 < t,v < 1 ,   0 <v < 1.
Дискретизация трехмерной и большей размерности фигур выполняется аналогично, например, для дискретизации точек p1-p4 пирамиды можно записать следующее уравнение:
р = (1-s)* ((1-v)* (1-u)*p1 + u*p2) + v*p3) + s*p4,    )
где:
0 > t < 1 ,   0 >v < 1  0 < s < 1.
Также можно интерпретировать построение декартовых, полярных и конформных сеток.

Ключевым понятием при дискретизации является понятие геометрического места точек, линий и плоскостей.


3. Проектирование как геометрическое место точек

Геометрическим местом точек называется совокупность (множество) всех точек, обладающих одним общим свойством. Прямую, кривую линию, плоскость и многие другие геометрические образы можно также определить как их геометрическое место.
1. Геометрическое место точек, равноудаленных от двух данных есть плоскость, перпендикулярная к отрезку, соединяющему данные точки, и проходящая через его середину.
2. Геометрическое место точек, равноудаленных от двух данных пересекающихся прямых, является  совокупностью двух плоскостей, перпендикулярных к плоскости данных прямых и проходящих через биссектрисы углов, образованных этими прямыми.
3. Геометрическое место точек, равноудаленных от данной плоскости на заданное расстояние, есть совокупность двух плоскостей, параллельных данной и удаленных от нее на заданное расстояние.
4. Геометрическое место точек, равноудаленных от двух данных параллельных плоскостей, есть плоскость, параллельная данным и делящая пополам расстояние между ними.
5. Геометрическое место точек, равноудаленных от двух пересекающихся  плоскостей, есть совокупность двух плоскостей, делящих пополам двугранные углы, образованные данными плоскостями.
6. Геометрическое местом прямых, удаленных от  данной  плоскости на заданное расстояние, есть совокупность двух плоскостей, параллельных данной и удаленных от нее на заданное расстояние.
7. Геометрическое место прямых, равноудаленных от двух данных параллельных  плоскостей, есть плоскость, параллельная данным и делящая пополам расстояние между ними.
8. Геометрическое местом плоскостей, равноудаленных от двух данных параллельных прямых, есть совокупность всех плоскостей, параллельных плоскости данных прямых, а также плоскостей,  проходящих через среднюю линию этих прямых.

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

На основе понятия геометрического места точек получены многие аналитические уравнения  геометрических фигур (окружность, эллипс, эвольвента,  сфера, эллипсоид и т.д.).

Пример 3. На плоскости построить геометрическое место точек (ГМТ) p, при условии, что они находятся (рис. 12) на одинаковом расстоянии от фиксированной точки pс.
Известно, что данным ГМТ является окружность.
Формализация задачи:
Формулируем поставленное условие с помощью утверждения: расстояние R между двумя точками Рс (центром окружности) и текущей точкой Р определяется модулем разности вектор-функций этих точек:
|Pc - P| = R или
(x-xc)*(x-xc)-(y- yc)*(y- yc)=R2

От векторной записи как ГМТ, можно перейти к их явному аналитическому заданию. Однако, часто это сделать сложно. В этом случае можно воспользоваться методом графочисленной оптимизации, искомая окружность определятся как гиперсечение ЦФ (см. лекцию 3).

4. Параметризация в проектировании

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

При параметризации фигур различают два вида параметризации: внутреннюю и внешнюю.

Внутренняя параметризация - процесс выбора  параметров, выделяющих фигуру из множества различных фигур, соответствующих одному и тому же определению. Такие параметры называются параметрами формы.

Внешняя параметризация - процесс выбора параметров, необходимых для выделения определенного положения фигуры из данного множества конгруэнтных фигур в пространстве.

Такие параметры называются параметрами формы. Так, например, окружность определяется тремя параметрами: два параметра (значения координат центра) - параметры положения и один - радиус - параметр формы.

Важным является умение параметрического описания геометрии форм различных деталей технического назначения. Так, например, судно состоит из миллиона деталей, и для каждого нового судна невыгодно, с одной стороны, каждый раз задавать заново такие детали, а, с другой стороны, хранение деталей в сгенерированном виде. Например, сгенерированная деталь в форматах системы AutoCad занимает много места на дисках памяти ЭВМ по сравнению с программами, описывающими их в параметрическом виде.



5. Введение в систему “Вектор” и работа с графикой

“Вектор” -  расчетно-графическая система, осуществляемая переход по состояниям, задание параметров, вызов программ-макрокоманд (МК) и т.д.

После запуска, система “Вектор” спрашивает Переименовать mgd.scn в mgd.mac (y/n)?. Если y (англ.), то результат (сценарий работы предыдущего сеанса) запишется в макрокоманду mgd.mac.

Каждая строка меню пронумерована и задействована на функциональные клавиши (ФК): (F1-F10) соответствует командам от 1 до 10), (ctrl +F1-F10) - (11-20) и (alt +F1-F10) - (21-30). Вводить команды можно и через enter. Для этого курсор строки следует установить (с помощью клавиш со стрелками вверх, вниз) на соответствующей строке и нажать на enter. Для прокрутки меню используются клавиши Page/up или Page/dawn.

Системные команды: Alt + c  - вызов командной строки
Alt + j  - вызов джойстика;         Alt + s  - удаление рисунков с экрана

Работа с графикой.

Стандартные проекции определяются кодами, задаваемыми в конце строки визуализации: 0,1 - горизонтальная проекция (плоскость xy),
2 - фронтальная (плоскость xz),
3 - профильная (плоскость yz),
4 - изометрия,
5 - диметрия,

В состоянии “Система координат экрана” визуализация осей производится также заданием соответствующего номера в конце строки-команды.
4 - ВИзуализация Осей СК  по ст. проекциям _0

Расположение проекций на экране дисплея можно осуществить через состояние “Система координат экрана”, в котором команда:

1 - Начало СК : x0=#00000.0] y0=#00000.0 определяет начало координат проекции xy, а команда:
3 - НСК на проекции YZ = (#00000.0],#00000.0],#00000.0]) - определяет начало координат профильной проекции yz.

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


5.1. Организация МК - стандартные МК

МК - это программы, построенные по правилам: назначение программы (что она делает), входные и выходные данные.
Определим некоторые правила организации макрокоманд (МК).
1) МК - это файл, имя которого определяется словом (до 8 букв английского алфавита) и расширением .mac, например: test.mac.
2) Создавать МК можно как непосредственно при работе в системе (все действия пользователя в системе автоматически записываются в mgd.scn) с последующим переименованием mgd.scn в файл с каким-либо новым именем и с расширением .mac, или в текстовом редакторе.

В текстовом редакторе операции можно указывать их номером. Например, задание начала отрезка в mgd.scn будет выглядеть так:
_Начальная_точка___=_( x101    y101    z101.
Пользователь же в текстовом редакторе может записать:
1    x101    y101    z101
Если в команде никакие параметры не задаются, то ставится номер команды. Например, МК: otrezok.мас - построения отрезка, можно записать и так:
 1
      1
           1    x101    y101    z101
           2    x102    y102    z102
           4
           32    (выход)


5.2. Работа с базовыми макрокомандами

5.2.1. Построение отрезка прямой

otrezok.mac - МК построения отрезка прямой
Входные данные: p101, p101 - начало и конец отрезка
n- проекция изображения (n=0 - горизонт., n=2- фронт.,
n=3 - проф. проекции, n =4 - изометрия, n=5 - диметрия)
Выходные данные: график прямой
Обращение к МК: otrezok: p101=0.,0. p102=100.,100.

5.2.2. Построение  окружности

okr.mac -  МК построения  окружности
Входные данные: р105 - положение центра, s100  радиус окружности
Выходные данные: график окружности.


5.3. Краткий обзор языка "Калькулятор"

НАЗНАЧЕНИЕ
Интерактивное расчетно-графическое программирование инженерных задач на основе арифметических, алгебраических, тригонометрических, логических и графических возможностей языка и графических систем.
ПЕРЕМЕННЫЕ
n-n199 - целые;   s-s199, x-x199, y-y199, z-z199 - вещественные;
p(x,y,z) - p199 (x199, y199, z199)  -  вещественные типа   "точка".
 Переменные могут быть локальными (например: loc s1-s10) и глобальными /по умолчанию/. Нумерация регистров - для локальных переменных не ограничена.
ОПЕРАЦИИ
   + - сложение;  - - вычитание;   - умножение;  / - деление
= - присвоение
ОПЕРАТОРЫ
    ?  -  условный оператор " если " / ставится после условия /;
   goto -  переход  /вперед/ по метке, содержащей до 8 символов английского алфавита /включая цифры/. Перед меткой в первой позиции /перед пробелом/ должен стоять символ $;
  error -  обработка ошибочных условий;
  exit -  выход из МК;
  free - освобождение объявленных ранее локальных переменных
ЛОГИЧЕСКИЕ ОТНОШЕНИЯ И ОПЕРАЦИИ
    <> - равенство        > - больше         < - меньше
    &  -  и               ! - или            ^ - не
ТРИГОНОМЕТРИЧЕСКИЕ И ДРУГИЕ ФУНКЦИИ
  sin - синус;    cos  - косинус;    tan - тангенс;
  cotan - котангенс;                 log - натуральный логарифм;
  exp - показательная функция;      sqrt - квадр. корень и т.д.
ДИРЕКТИВЫ
   print$on/off/ - включить /выключить/ печать текста МК
   msg$off/on/   - выключить /включить/ сообщения расчетов
ВЫЗОВ  МК
<имя МК>: < список присвоений >
Если МК начинается с n, s, p, x, y, z, то при ее вызове перед именем МК ставится /без пробела/ символ $. Возможен рекурсивный вызов МК, что позволяет организовывать циклы. Перед комментариями ставится символ $ с пробелом.

Пример. Задание чертежа плоской детали в параметрическом виде.
Плоская деталь дана с двумя отверстиями. Деталь - прямоугольная, может иметь различные размеры по длине, ширине и диаметрами отверстий с различным расположения их на пластине. Требуется формализовать задания размеров так,  чтобы она обладала массовостью задания объекта, в зависимости от размеров.

На языке "Калькулятор" системы "Вектор" параметризация фактически будет в  задании точек   фигуры через буквенные обозначения (и вычисление через размеры) и внутренние параметры фигур (например, радиус окружности).
 
 
Внизу дана  МК задания плоской фигуры через общие ( размеры, вторая задания точек фиуры через и непосредственно само построение фигуры

detal.mac  -  МК  образования точек построения и формирования по ним изображения
: s1=40.0 s2=30.0 s3=8.0 s4=7.0 s5=11.0  s6=20.0 s7= 30.0 s8=21.0
: p2=x1+s1,y1 p3=x2, y1+s2
: p4=x1,y3        p5=x1+s5, y1+s6
: p6=x3-s7, y1+s8
и далее задание отрезков прямых и окружностей, например, через их макрокоманды.
Например для отрезка прямой p1-p2 обращение: otrezok: p101=p1 p102=p2, где otrezok.mac - МК построения отрезка прямой. При этом входными данными являются: начало отрезка (используется регистр р101), конец отрезка (регистр p102). В конечном виде МК  detal.mac будет следующей:

detal.mac  -  МК  образования точек построения и формирования по ним изображения
: s1=40.0 s2=30.0 s3=8.0 s4=7.0 s5=11.0  s6=20.0 s7= 30.0 s8=21.0
: p2=x1+s1,y1 p3=x2, y1+s2
: p4=x1,y3        p5=x1+s5, y1+s6
: p6=x3-s7, y1+s8
otrezok: p101=p1 p102=p2
otrezok: p101=p2 p102=p3
otrezok: p101=p3 p102=p4
otrezok: p101=p4 p102=p1
okr: p100=p5 s100=10.
okr: p100=p6 s100=10.