Методическое пособие по курсу "Интерактивные графические системы". Найханов В.В - 14 стр.

UptoLike

Легко заметить, что участки кривой, которые необходимо
вычерчивать на листе, чередуются с участками, которые чертить не
требуется.
При использовании параметрических сплайнов процедура разбиения
на плазовые листы упрощается.
P
1
P
2
P
3
P
0
P
6
P
4
P
5
P
7
P
8
P
к
C
B
A
D
Рис. 1.8 Разбиение графической информации
Найдем координаты точек пересечения кривой с краями листа, а также
параметры этих точек. Включим в полученную таблицу начальную и
конечную точки кривой. В рассматриваемом примере (рис.1.8)
P
0
, P
1
, P
2
, P
3
, P
4
, P
5
, P
6
, P
7
, P
8
, P
k
. (1.26)
Упорядочим точки по возрастанию параметра:
P
0
, P
6
, P
1
, P
2
, P
4
, P
5
, P
3
, P
8
, P
7
, P
k
. (1.27)
Выбросим из полученной таблицы одинаковые точки (случай прохождения
кривой через угол листа):
P
0
, P
6
, P
1
, P
2
, P
4
, P
5
, P
3
, P
7
, P
k
. (1.28)
После этого можно получить таблицу границ для черчения кривой.
Черчение начинается с первого участка, если начальная точка лежит на поле
листа; если не лежит, - то со второго.
В рассматриваемом примере начальная точка не лежит на плазовом
листе, поэтому черчение должно начинаться со второй точки таблицы
(1.28). Получаем границы черчения
:
[P
6
, P
1
], [P
2
, P
4
], [P
5
, P
3
], [P
7
, P
k
]. (1.29)
Другая практическая задача - пересечение пространственной кривой с
плоскостью или плоской кривой с прямой (этот случай уже возник при
разбиении графической информации на плазовые листы). Если плоскость
задавать в неявном виде
Ax + By + Cz + D = 0,
то все сводится (при использовании кубических параметрических сплайнов)
к решению кубического уравнения относительно параметра s:
F (s) = Ax (s) + By (s) + Cz (s) + D = 0. (1.30)
Все
действительные корни такого уравнения можно найти, применив
формулу Кардана. При этом лучше всего решение искать в
тригонометрической форме.
      Легко заметить, что участки кривой, которые необходимо
вычерчивать на листе, чередуются с участками, которые чертить не
требуется.
      При использовании параметрических сплайнов процедура разбиения
на плазовые листы упрощается.
                A                            P3 B
                      P1    P2                    P8
                     P6


                P0               P5                P7
                           P4                Pк
                 C                                D

               Рис. 1.8 Разбиение графической информации

Найдем координаты точек пересечения кривой с краями листа, а также
параметры этих точек. Включим в полученную таблицу начальную и
конечную точки кривой. В рассматриваемом примере (рис.1.8)
            P0, P1, P2, P3, P4, P5, P6, P7, P8, Pk.              (1.26)
Упорядочим точки по возрастанию параметра:
            P0, P6, P1, P2, P4, P5, P3, P8, P7, Pk.              (1.27)
Выбросим из полученной таблицы одинаковые точки (случай прохождения
кривой через угол листа):
            P0, P6, P1, P2, P4, P5, P3, P7, Pk.                 (1.28)
      После этого можно получить таблицу границ для черчения кривой.
Черчение начинается с первого участка, если начальная точка лежит на поле
листа; если не лежит, - то со второго.
      В рассматриваемом примере начальная точка не лежит на плазовом
листе, поэтому черчение должно начинаться со второй точки таблицы
(1.28). Получаем границы черчения:
            [P6, P1], [P2, P4], [P5, P3], [P7, Pk].             (1.29)
      Другая практическая задача - пересечение пространственной кривой с
плоскостью или плоской кривой с прямой (этот случай уже возник при
разбиении графической информации на плазовые листы). Если плоскость
задавать в неявном виде
            Ax + By + Cz + D = 0,
то все сводится (при использовании кубических параметрических сплайнов)
к решению кубического уравнения относительно параметра s:
            F (s) = Ax (s) + By (s) + Cz (s) + D = 0.            (1.30)
Все действительные корни такого уравнения можно найти, применив
формулу Кардана. При этом лучше всего решение искать в
тригонометрической форме.