Язык Форт и его реализации


         

Элементарная машинная графика - часть 2


Невысокая разрешающая способность алфавитно-цифрового терминала с точки зрения машинной графики вполне допускает использование стандартных целых чисел для представления значений вещественных функций. Более того, такие дискретные вычислительные приемы оказываются значительно более удобными для задач машинной графики, чем работа с числами в формате плавающей точки. Например, тригонометрические функции можно вычислять следующим образом, задавая их аргумент в градусной мере:

( 18.06.86 SIN COS) ( ТАБЛИЦА СИНУСОВ ОТ 0 ДО 90 ГРАД.) HERE 0000 , 0175 , 0349 , 0523 , 0698 , 0872 , 1045 , 1219 , 1392 , 1564 , 1736 , 1908 , 2079 , 2250 , 2419 , 2588 , 2756 , 2924 , 3090 , 3256 , 3420 , 3584 , 3746 , 3907 , 4067 , 4226 , 4384 , 4540 , 4695 , 4848 , 5000 , 5150 , 5249 , 5446 , 5592 , 5736 , 5878 , 6018 , 6157 , 6293 , 6428 , 6561 , 6691 , 6820 , 6947 , 7071 , 7193 , 7314 , 7431 , 7547 , 7660 , 7771 , 7880 , 7986 , 8090 , 8192 , 8290 , 8387 , 8480 , 8572 , 8860 , 8746 , 8829 , 8910 , 8988 , 9063 , 9135 , 9205 , 9772 , 9336 , 9397 , 9455 , 9511 , 9563 , 9613 , 9659 , 9703 , 9744 , 9781 , 9816 , 9840 , 9877 , 9903 , 9925 , 9945 , 9962 , 9976 , 9986 , 9994 , 9998 , 10000 , : SIN180 ( N->SIN N, 0<=N<=180) DUP 90 > IF 180 SWAP - THEN 2* [ DUP ] LITERAL + @ ; DROP : SIN ( N->SIN N) 360 MOD DUP 0< IF 360 + THEN DUP 180 > IF 180 - SIN180 NEGATE ELSE SIN180 THEN ; : COS ( N->COS N) 90 SWAP - SIN ;

Аналогично и другие элементарные функции можно с успехом вычислять по классическим итерационным схемам:

( DSQRT SQRT ИЗВЛЕЧЕНИЕ КОРНЯ ПО СХЕМЕ НЬЮТОНА) : DSQRT ( D1->D2) 2DUP D0< ABORT" ОТРИЦАТЕЛЬНЫЙ АРГУМЕНТ" 2DUP 2. D< IF EXIT THEN ( ДАЛЕЕ ПО СХЕМЕ: X[0]=X/2; X[I+1]=X[I]/2+X/X[I]/2) 2DUP 2. D/ SWAP BEGIN 2OVER 2OVER D/ 2OVER D+ 2. D/ 2SWAP 2OVER D- DABS 2. D< UNTIL 2SWAP 2DROP ; : SQRT ( N1->N2) S>D DSQRT DROP ;

Некоторое неудобство при таком представлении функций доставляет необходимость помнить о масштабном множителе, но это с лихвой возмещается простотой приемов их вычисления.




Содержание  Назад  Вперед