Преобразование программной информации, интерполяторы. Схемы использования интерполяторов, страница 7

КРУГОВАЯ ИНТЕРПОЛЯЦИЯ 

ПО МЕТОДУ ОЦЕНОЧНОЙ ФУНКЦИИ

Применение метода оценочной функции при круговой интерполяции осуществляется в том же порядке, что и при линейной интерполяции. Уравнение окружности запишем в форме

                                                    xi2 + yi2 = R2.

Оценочной функцией Fi для окружности является выражение

                                                Fi = xi2 + yi2 − R2, где xi, yi – текущие значения координат траектории; R – радиус окружности.

Знак оценочной функции в предыдущем такте управления определяет операцию в последующем такте. Для интерполирования дуги окружности задается номер квадранта и координаты начальной х0, у0 и конечной хk, уk точек дуги. Для воспроизведения дуги окружности  в положительном направлении (против часовой стрелки) в первом квадранте осуществляется следующий алгоритм управления (рис. 9).

Рис. 9. Круговая интерполяция по методу оценочной функции

Если Fi ≥ 0 (точка находится вне окружности или на ней),  то очередной шаг делается вдоль отрицательного направления оси X,

т. е. хi+1 = х1 – 1; если Fi < 0 (точка находится внутри окружности),  то очередной шаг делается в положительном направлении оси Y, т. е. yi+1 = yi + 1.

После очередного шага по оси X получим новое значение оценочной функции:

                               Fi+1 = (xi – 1)2 + y2iR2 = Fi – 2xi + 1,                        

которое отличается от предыдущего на величину (–2хi +1). После шага по оси Y новое значение оценочной функции

                                Fi+1 = xi2 + (yi +1)2R2 = Fi + 2yi + 1 отличается от предыдущего на величину 2уi +1.

В таблице 6 для примера приведено вычисление шагов, необходимых для воспроизведения дуги окружности с параметрами К = 20; хn = 20; уо = 0:

Таблица 6

п/п

Оценочная функция

Шаг по осям

Текущие  координаты

X

Y

Xi

Yi

0

F0 = 0

20

0

1

F1 = 02·20+1 = 39

1

0

19

0

2

F2 = 39+2·0+1 = 38

0

1

19

1

3

F3 = 38+2·1+1 = 35

0

1

19

2

4

F4 = 35+2·2+1 = 30

0

1

19

3

5

F5 = 30+2·3+1 = 23

0

1

19

4

6

F6 = 23+2·4+1 = 14

0

1

19

5

7

F7 = 14+2·5+1 = 3

0

1

19

6

8

F8 = 32·6+1= +10

0

1

19

7

9

F9 = 102·19+1= 27

1

0

18

7

10

F10 = 27+2·7+1= 12

0

1

18

8

11

F11 = 12+2·8+1= +5

0

1

18

9

12

F12 = +52·18+1= 30

1

0

17

9

13

F13 = 302·9+1= 11

0

1

17

10

14

F14 = 11+2·10+1= +10

0

1

17

11

15

F15 = +102·17+1= 23

1

0

16

11

16

F16 = 23+2·11+1= 0

0

1

16

12

17

F17 = 02·16+1= 31

1

0

15

12

18

F18 = 31+2·12+1= 6

0

1

15

13

19

F19 = 6+2·13+1= +21

0

1

15

14