ВУЗ:
Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 3
- 4
- 5
- 6
- 7
- …
- следующая ›
- последняя »