Преобразование программной информации, интерполяторы. Схемы использования интерполяторов, страница 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 + y2i – R2 = Fi – 2xi + 1,                        

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

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

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

Таблица 6

№

п/п

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

Шаг по осям

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

X

Y

Xi

Yi

0

F0 = 0

–

–

20

0

1

F1 = 0–2·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 = –3–2·6+1= +10

0

1

19

7

9

F9 = 10–2·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 = +5–2·18+1= –30

1

0

17

9

13

F13 = –30–2·9+1= –11

0

1

17

10

14

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

0

1

17

11

15

F15 = +10–2·17+1= –23

1

0

16

11

16

F16 = –23+2·11+1= 0

0

1

16

12

17

F17 = 0–2·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