Главная страница » Электрика в театре » Алгоритмы многогранных поверхностей

1 ... 6 7 8 9 10 11 12 ... 23

Прямой с угловым коэффициентом = кц -\- Ь, откуда f = = I - fer) - fc. .

Эти свойства следующие:

1) на прямой эта функция обращается в нуль (рис. 17);

2) в области эта функция принимает значение, большее нуля;

.3) в области / функция принимает значение, меньшее нуля. Из этого можно сделать выводы:

1) если / = О, то точка, координаты которой обратили данную функцию в нуль, лежит на данной прямой;

2) если / > О, то точка, координаты которой присваивают функции положительное значение, находится слева от прямой;

3) если f <0, то точка, координаты которой присваивают функции отрицательное значение, лежит справа от данной прямой. Эти свойства используем для алгоритма выявления точек очерка на изображении поверхности.

Описание алгоритма.

1. На первой в массивах изображения линии уровня алгоритмически выделяются точки k\ и fe} , имеющие координаты t\h<.in и Timax (рис. 18). Здссь т) - координаты на планшете графопостроителя, соответствующие х а у в массивах.

2. На следующей линии уровня выделяются аналогичные точки feP и klri-

3. Находятся координаты точек, определяющих элемент очерка. Уравнение прямой k]ki представим с угловым коэффициентом


(Z) I n

я так итак

Рис. 18. Схема автоматического построения очерка на изображении



Подстановкой, в уравнение = кц b полученного значения коэффициента и координат точки к\ найдем выражение b через

Imin Imin :

е(2) St - ё, (2)

Imin Imin

тогда

р(2) е1 = ?--(2) 1 . Л

V Imin Imin

Если в выражение для функции подставлять координаты точек, лежащих на линии уровня в промежутке г]}пт - ilmln, то будут возникать следующие ситуации. Так, если в уравнение-прямой feffeP подставить координаты точек k]+i или J+fe, то значение функции будет положительным. Если же подставить координаты точки к}1, то / < 0. По полученному значению f можно определить, пересекает ли прямая линию уровня или примыкает к ней па ребру либо по вершине ломаной. Очевидно, чтобы прямая примыкала к линии уровня, необходимо, чтобы для всех точек этой линии выполнялось условие / < О (либо для всех точек / > О, если строится правая часть очерка). Ниже рассмотрим нахождение точек очерка левой части изображения поверхности, имея в виду, что правая часть строится аналогичным образом, т. е. изображение располагается слева от очерка. *

4. Находятся координаты очередной за к\ (по возрастанию ) точки к}+1 и определяется знак функции при подстановке координат этой точки. Если / > О, то составляется уравнение прямой, проходящей через fep и k}+i, и записывается функция f Ц, ц).

5. Находятся координаты следующей за к}1 точки и определяется знак функции. Если / > G, то п. 1 повторяется до тех пор, пока / не станет меньше нуля.

Допустим, в нашем примере подстановка координат следующей за к}1 точки дает / < 0. Тогда закрепляем один конец прямой в точке ki+i. Уточним вторую концевую точку прямой, полученной в п. 2. Для этого определим угловой коэффициент для положения прямой при ее прохождении через точки t+i и kl по приведенным выше формулам и выражению функции /. Подставляем координаты точек, имеющих т] >> min, в выражение функции до тех пор, пока функция / не станет меньше нуля. При этом конец прямой переносится каждый раз в ту точку, координаты которой делают значение функции больше нуля, т. е. прямая постепенно передвигается концом в точку, после которой значение функции становится меньше нуля. Эта точка принимается за искомую точку очерка. !



Механически процесс уточнения выглядит так: прямая, покачиваясь около выделяемых точек, передвигается к границе области, где на картинной плоскости, нет изображения. Таким образом, процесс уточнения сходится к очерку.

6. Так как линия уровня задана в неявной форме и нам не известны особенности кривой, то, возможно, в промежутке, который мы рассматриваем, имеется петля , поэтому алгоритм предусматривает проверку рассматриваемого промежутка на наличие петли, пересекающей полученную прямую. Точки перегиба петли определяются по характеру изменения координаты т) в массиве точек изображения, начиная с точки kli в сторону возрастания координаты. В алгоритме это изменение определяется по знаку разности координат между смежными точками в рассматриваемом промежутке на линии уровня. Все разности между координатами т) двух смежных точек в промежутке от J+i до fel+j имеют, допустим, положительный знак, а, начиная от точки kj+t, разность координат меняет знак на обратный. Это свидетельствует о том, что точка k\ji является точкой перегиба. Если при подстановке координат этой точки в выражение функции ее значение оказывается меньше нуля, то эта точка не войдет в линию видимого очерка.

Проследим далее изменение знака разности на рассматриваемом промежутке. От точки }+; до k\+k знак разности постоянен, но, начиная с точки k}jk, он изменится на обратный. Значит, точка k\jk является точкой перегиба, и так как при подстановке координат этой точки в выражение функции получаем, что / > О, то эта точка будет принадлежать видимой части очерка. Если есть петля на одной линии уровня, то можно предположить, что она имеется и на следующей линии, так как на поверхности, очевидно, есть складка , поэтому описанный процесс повторяется и для следующей линии. Возможен случай, когда складка на поверхности сглаживается , не доходя до следующей линии. Тогда на имеющейся второй линии нет точки, подобной l+j;. В этом случае предусматривается дробление шага z [в системе F {х, у, z); z = А] для промежутка z = А или для того промежутка, в котором необходимо найти на линии уровня точку, подобную M+fc-

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



,-/4-


Рис. 19. Схема комплекса алгоритмов автоматического конструирования каркаса поверхности по условиям с последующим вычерчиванием

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



3. АВТОМАТИЗАЦИЯ РЕШЕНИЯ НЕКОТОРЫХ ЗАДАЧ НА ПОВЕРХНОСТЯХ ВТОРОГО ПОРЯДКА

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

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

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

Пусть пересекающиеся поверхности выражены системой уравнений второй степени F (х, у, z) = 0; Ф (х, у, z) = 0. Дадим, например, z значение z = h, выбирая в области значений, удовлетворяющих исходной системе. Перепишем уравнения в виде системы

j F(x,y,/1о) = 0; 1 Ф(х.у,/го) = 0.



Эти операции моделируют в числовой форме графический алгоритм построения прекций линии пересечения с помощью плоскостей-посредников. В данном случае строится сечение поверхностей плоскостью уровня, параллельной Оху. Из последней системы можно получить легко программируемые формулы решения задачи: х = f (/iq); г/= Ф' (о) о1- Придавая значения г = ho, hy, h, hi, вычислим по формулам координаты точек, принадлежащих проекциям искомой линии .

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

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

I + %2 - (Z-100)2= 0;

1 (X - 30)2 + - (Z - 50)2 = 0.

Область существования Л,-, принадлежащих полю задачи, может быть определена из рассмотрения фронтальных проекций непосредственно по чертежу: <: Я,- <: /i,nax.

Число точек, полученных в результате решения задачи, очевидно, зависит от того числа решений исходной системы, которое производится с изменяющимся h. Это, в свою очередь, зависит от расстояния между смежными плоскостями-посредниками, которое назначено. Аналитически это выражается разностью hi - - = Sp> где бр в дальнейшем будем называть шагом параметра h.

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

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

Алгоритм соединения точек в непрерывную линию рассмотрен выше (см. стр. 81-86).




\ \\

у


Рис. 20. Построение линии пересечения поверхностей второго порядка

Рис. 21. Пересечение поверхностей с общей плоскостью симметрии, не параллельной картинным плоскостям

Алгоритмическое построение экстремальных точек проекции линии пересечения поверхностей. Эта задача возникает также в случаях, когда заданные поверхности располагаются более общим образом, чем в изложенном примере (рис. 20). Пусть, например, поверхности, используемые в примере на рис. 20, располагаются так, что общая плоскость симметрии не параллельна плоскостям координат (рис. 21). Из рассмотрения исходных проекций поле задачи непосредственно определить нельзя. Необходимы дополнительные построения, которые выявляли бы экстремальные точки проекций линии пересечения. Такие построения не являются стандартными и зависят от вида заданных поверхностей, поэтому строить алгоритмический процесс, моделирующий эти построения, трудно. Необходимо использовать процесс, который бы во всех случаях автоматически приводил к определению таких точек и, следовательно, поля задачи. Применим подход, сходный с описанным в п. 1 гл. III. Легко заметить, что координаты экстремальных точек (например, абсциссы верхней точки



фронтальной проекции линии пересечения) соответствуют случаю равенства корней при решении исходной системы. Пусть при z = hi получена пара корней, причем Xi ф х^- Это означает, что экстремальная точка не пройдена и необходимо изменить параметр на установленный шаг /ij+i = ft + бр. Пусть далее при значении параметра z = получены комплексные корни. Последнее означает, что экстремальная точка пройдена, и параметр h вышел из области, ограничивающей поле задачи. Тогда необходимо восстановить предыдущее значение параметра к и решить систему при уменьшенном, например наполовину, шаге параметра

Если при этом будут снова получены мнимые точки, то происходит дальнейшее дробление шага параметра по той же формуле. Последовательное применение такого итерационного процесса приводит к тому, что при некотором значении hi получаются вновь вещественные корни. Последние проверяются на совпадение, и процесс либо заканчивается, либо продолжается дальше, при этом выражение х^ - х^ -> 0. На практике необходимо заканчивать решение при [х^ - < е, где е достаточно мало для того, чтобы обеспечить точность решения, нужную для производства либо для графического решения. На ЭЦВМ может быть получена достаточная точность для решения любой производственной задачи обсуждаемого типа.

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

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



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

Ах + By + Cz + IDxy -Ь ЧЕуг + IFzx -f 2Gx -- 2Hy + 2/z + . + /C = 0.

Из этого исходного уравнения можно получить девять параметров, например AlK= Pi, В/К = jPg; Рс. Запишем исходное уравнение в виде

Ф (X, у, г) = 0. .

Обозначим координаты точек, принадлежащих исходной фигуре поверхности: Xi; у^; г^, х^, г/г. а, х^, уд, Zg. Подставляя эти координаты в систему линейных уравнений, получим:

Ф (Xi,yi, г,) = 0;

Ф (Ха, г/а. а) = 0; . . -

Ф (8, г/8, Zg) = 0; Ф {Xs, г/в, Zg) = 0.

Такую систему можно решить алгоритмически с помощью одной из известных стандартных подпрограмм, имеющихся в любом вычислительном центре. В результате получим параметры Р^. Успешное решение системы линейных уравнений зависит от того, как выбраны исходные, точки, параметризующие поверхность. Легко видеть, что при неудачном выборе этих точек ими можно определить пучок поверхностей и неопределенность решения системы. Геометрически представляется вероятным, что если выбранные точки располагаются на кривой четвертого порядка или на коническом сечении, то они определяют, по крайней мере, еще одну поверхность, пересекающуюся с нашей по этой кривой. Однако указанные условия являются только достаточными и трудно переводятся в цифровую форму. Более простыми являются условия, при которых система имеет единственное решение. Такими условиями является непропорциональность и неравенство строк и столбцов определителя друг другу. Эти условия обеспечивают, как известно, отличие определителя от нуля. Практика непосредственного программирования показала, что желательно также выбирать исходные точки с координатами, отличными от нуля.

Для дальнейшего применения полученных коэффициентов исходного уравнения поверхности необходимо заранее расписать адресаячеекпамяти ЭЦВМ с целью установления взаимно-однозначного соответствия между ними и членами уравнения поверхности. Вид исходного уравнения соответствует выбранной поверх-



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

Определение координат точек, принадлежащих проекциям линии пересечения поверхностей второго порядка, способом последовательной параметризации с управляемым шагом. Пусть в /--массиве ячеек памяти машины имеются коэффициенты уравнений пересекающихся поверхностей второго порядка, вычисленные тем или иным способом. Введем г = hi л вычислим содержание соответствующих /--ячеек. Выберем далее у - h/ (либо х = = hj). В результате изложенных операций образуется пара исходных уравнений второй (в некоторых случаях - первой) степени относительно оставшегося неизвестного. HanpjiMep,

F (х, h,., hi) = 0;

Ф (X, hj, hi) = 0. - .

, Геометрически последний из проведенных выборов означает построение в плоскости г = hi прямой, параллельной одной из осей координат.

Пусть далее поле Задачи ограничено, например, областью наложения одноименных проекций в пределах Ятш х Ятах; min гаах на горизонтальной проскции. Если выбранное значение у = hj удовлетворяет соответствующему неравенству, то можно предположить, что при решении исходных уравнений мы получим корни, являющиеся абсциссами точек пересечения прямой у = hj с кривыми'второго порядка. Обозначим эти кривые I п т, а корни б' и 6f ({ = 1, 2) соответственно.

Случай равенства корней б' = 6Г при некотором у = hi соответствует обнаружению корня исходной системы уравнений и, следовательно, координат одной из искомых точек, принадлежащих линии пересечения плоскостей. Известно, что корни системы, аналогичной приведенной выше, могут быть четно- и нечетно-кратными. Геометрически это соответствует в изложенной ситуации случаям пересечения кривых и их касания. В дальнейшем нечетно-кратные корни обозначаются Ki (i =1, 2, 3, 4), четно-кратные (i = 1, 2). Вероятность случайного выбора у ~ hj, соответствующего равенству б' = 6Г, мала. Чаще будут неравные корни. Будем изменять значения параметра у = hj, при этом обеспечим алгоритмически такое положение, при котором это значение будет изменяться в зависимости от поведения

корней е- и ег.

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



1 ... 6 7 8 9 10 11 12 ... 23

© 2000-2024. Поддержка сайта: +7 495 7950139 добавочный 133270.
Заимствование текстов разрешено при условии цитирования.