Компьютерная графика. Нечитайло О.Н - 5 стр.

UptoLike

5
1.3 Задание 2. Генерация окружностей
В некоторых приложениях часто приходится воспроизводить на экране
окружности или дуги окружностей. Для их построения используется ряд
алгоритмов, основанных на методе приращений.
Построить окружность используя уравнения:
(X - a)
2
+ (Y - b)
2
= R
2
, (4)
где для а=150, b=100 и R=50 (а=0, b=0 и R=80);
X = a + R·Cos(φ), Y = b + R·Sin(φ), (5)
где для параметров, определенных выше (
π
=3.14159);
дифференциальное уравнение dy/dx = - x/у.
Очевидно, что один из вариантов алгоритмов для построения
окружности можно реализовать, используя, в качестве приращений величины
(- X) и Y:
X
n+l
= X
n
+
ε
·y
n
,
Y
n+l
= Y
n
-
ε
·х
n,
(6)
Согласно этим соотношениям, значения приращений должны на
каждом шаге определяться заново. На практике коэффициент
ε
берется
постоянным, равным 2-n (2n-1<= R <= 2n, начало окружности совпадает с
началом координат, радиус равен расстоянию от начала координат до первой
точки 1(х1,у1)).
К сожалению, этот вариант фактически выдает не дугу окружности, а
дугу спирали.
Каждый шаг делается в направлении, перпендикулярном текущему
радиусу окружности, вследствие чего очередная точка оказывается несколько
дальше от ее центра, чем предыдущая.
Эту проблему удается, однако, без труда разрешить, воспользовавшись
для вычисления Y
n+1
не x
n
, а x
n+1
.
X
n+l
= X
n
+
ε
·y
n
,
Y
n+l
= Y
n
- ·
ε
х
n+1
, (7)
Полученные уравнения описывают движение точки по эллипсу. Если
коэффициент
ε
достаточно большой, то кривые выглядят заметно
сплюснутыми.
При уменьшении
ε
этот эффект практически исчезает, однако
существенно возрастает объем вычислений.
     1.3 Задание 2. Генерация окружностей

     В некоторых приложениях часто приходится воспроизводить на экране
окружности или дуги окружностей. Для их построения используется ряд
алгоритмов, основанных на методе приращений.
     Построить окружность используя уравнения:

                 (X - a)2 + (Y - b)2 = R2,                    (4)

     где для а=150, b=100 и R=50 (а=0, b=0 и R=80);

                X = a + R·Cos(φ), Y = b + R·Sin(φ),           (5)

       где  для    параметров,       определенных   выше    ( π =3.14159);
дифференциальное уравнение dy/dx = - x/у.
Очевидно, что один из вариантов алгоритмов для построения
окружности можно реализовать, используя, в качестве приращений величины
(- X) и Y:
                        X n+l = Xn + ε ·y n,
                        Y n+l = Y n - ε ·х n,              (6)

      Согласно этим соотношениям, значения приращений должны на
каждом шаге определяться заново. На практике коэффициент ε берется
постоянным, равным 2-n (2n-1<= R <= 2n, начало окружности совпадает с
началом координат, радиус равен расстоянию от начала координат до первой
точки 1(х1,у1)).
      К сожалению, этот вариант фактически выдает не дугу окружности, а
дугу спирали.
      Каждый шаг делается в направлении, перпендикулярном текущему
радиусу окружности, вследствие чего очередная точка оказывается несколько
дальше от ее центра, чем предыдущая.
      Эту проблему удается, однако, без труда разрешить, воспользовавшись
для вычисления Yn+1 не xn, а xn+1.

                        Xn+l = Xn + ε ·yn ,
                        Yn+l = Yn - · ε хn+1,                       (7)

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



                                                                          5