Информационные и коммуникационные технологии. Дешко И.П - 123 стр.

UptoLike

123
нии). Ложные ребра на экран не выводятся, но ординаты точек на
них при тех дискретных значениях
x, при которых ребра опреде-
лены, участвуют в формировании массивов верхнего и нижнего
горизонтов (при тех же условиях, что и сами кривые).
С учетом приведенных соображений формальное описание
последовательности действий алгоритма плавающего горизонта
можно описать примерно так: поочередно для каждой из равно-
отстоящих друг от друга плоскостей
z = const, начиная с ближней
от точки наблюдения:
определить координаты первой (левой) точки
P
n
на лежащей в
плоскости кривой
y = f (x);
обработать левое боковое ребро: если точка
P
n
является первой
точкой на первой кривой, то запомнить ее в качестве
P
n–1
и за-
кончить обработку; в противном случае создать ребро, соеди-
няющее
P
n–1
и P
n
, занести, если это требуется, ординаты точек
ребра в массивы верхнего и нижнего горизонтов и запомнить
P
n
в качестве P
n–1
;
определить координаты остальных точек на кривой
y = f (x) при
дискретном изменении
x с единичным шагом, в том числе по-
следней (правой) точки
Q
n
;
если
y = f (x) является первой обрабатываемой кривой, занести
значения
y всех точек на ней для соответствующих x в массивы
верхнего и нижнего горизонтов и закончить обработку, если
нет, тогда: сравнить для каждой точки на кривой значение
y с
имеющимися в массивах верхнего и нижнего горизонтов (для
соответствующего значения
x); если y точки не меньше, чем в
массиве верхнего горизонта, или не больше, чем в массиве
нижнего горизонта, или значения в массивах отсутствуют, объ-
явить точку видимой и занести
y точки в соответствующий
массив (или в оба массива); в противном случае объявить точку
невидимой;
обработать правое боковое ребро: если точка
Q
n
является по-
следней точкой на первой кривой, то запомнить
Q
n
в качестве
Q
n–1
и закончить обработку; в противном случае создать ребро,
                              123

нии). Ложные ребра на экран не выводятся, но ординаты точек на
них при тех дискретных значениях x, при которых ребра опреде-
лены, участвуют в формировании массивов верхнего и нижнего
горизонтов (при тех же условиях, что и сами кривые).
     С учетом приведенных соображений формальное описание
последовательности действий алгоритма плавающего горизонта
можно описать примерно так: поочередно для каждой из равно-
отстоящих друг от друга плоскостей z = const, начиная с ближней
от точки наблюдения:
ƒ определить координаты первой (левой) точки Pn на лежащей в
  плоскости кривой y = f (x);
ƒ обработать левое боковое ребро: если точка Pn является первой
  точкой на первой кривой, то запомнить ее в качестве Pn–1 и за-
  кончить обработку; в противном случае создать ребро, соеди-
  няющее Pn–1 и Pn , занести, если это требуется, ординаты точек
  ребра в массивы верхнего и нижнего горизонтов и запомнить
  Pn в качестве Pn–1 ;
ƒ определить координаты остальных точек на кривой y = f (x) при
  дискретном изменении x с единичным шагом, в том числе по-
  следней (правой) точки Qn ;
ƒ если y = f (x) является первой обрабатываемой кривой, занести
  значения y всех точек на ней для соответствующих x в массивы
  верхнего и нижнего горизонтов и закончить обработку, если
  нет, тогда: сравнить для каждой точки на кривой значение y с
  имеющимися в массивах верхнего и нижнего горизонтов (для
  соответствующего значения x); если y точки не меньше, чем в
  массиве верхнего горизонта, или не больше, чем в массиве
  нижнего горизонта, или значения в массивах отсутствуют, объ-
  явить точку видимой и занести y точки в соответствующий
  массив (или в оба массива); в противном случае объявить точку
  невидимой;
ƒ обработать правое боковое ребро: если точка Qn является по-
  следней точкой на первой кривой, то запомнить Qn в качестве
  Qn–1 и закончить обработку; в противном случае создать ребро,