Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по практике.docx
Скачиваний:
22
Добавлен:
13.03.2016
Размер:
284.94 Кб
Скачать

Заключение

В процессе разработки проекта был подобран необходимый теоретический материал по теме «Тригонометрические функции, заданные на единичной окружности». Создан единичный круг с радиус-вектором, добавлены элементы управления, определяющие отображаемую функцию и вид чертежа, обеспечена возможность изменения угла наклона с постоянным пересчетом параметров, отображаемых на правой панели. Программа протестирована, ошибок не выявлено.

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

Список литературы

  1. Тригонометрический круг: вся тригонометрия на одном рисунке. (http://ege-study.ru/materialy-ege/trigonometricheskij-krug/)

  2. И.В.Яковлев Тригонометрическая окружность. (http://mathus.ru/math/trigok.pdf)

  3. Тригонометрические функции на единичной окружности: тангенс и котангенс. (http://www.yaklass.ru/p/algebra/10-klass/trigonometricheskie-funktcii-10781/sinus-i-kosinus-tangens-i-kotangens-10880/re-f0a8f1b1-6bb3-4eb5-aea0-d43fec569441)

  4. Учебный практикум (http://stratum.ac.ru/education/stratum/3.0/practic/)

Приложение

Приложение 1.

if (~changed)

if (~show_sin)

ShowObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"f1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"f2"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"f3"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"f4"))

ShowObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"sin1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"cos1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"tg1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"ctg1"))

ShowObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"sinx"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"cosx"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"tgx"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"ctgx"))

ShowObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Lsin"))

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Lcos"))

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Ltg"))

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Lctg"))

ShowObject2d(~HSpace,~Line_Sin)

HideObject2d(~HSpace,~Line_Cos)

HideObject2d(~HSpace,~Line_Tg)

HideObject2d(~HSpace,~Line_Ctg)

HideObject2d(~HSpace,~LineDX)

ShowObject2d(~HSpace,~LineDy)

HideObject2d(~HSpace,~LineDtg)

HideObject2d(~HSpace,~LineDctg)

HideObject2d(~HSpace,~bord)

HideObject2d(~HSpace,~LineDX1)

HideObject2d(~HSpace,~LineDY1)

ShowObject2d(~HSpace, ~ShowSin)

HideObject2d(~HSpace, ~ShowCos)

HideObject2d(~HSpace, ~ShowTg)

HideObject2d(~Hspace, ~ShowCtg)

HideObject2d(~HSpace, GetObject2dByName(~HSpace, #0, "inf"))

endif

if (~show_cos)

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"f1"))

ShowObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"f2"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"f3"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"f4"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"sin1"))

ShowObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"cos1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"tg1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"ctg1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"sinx"))

ShowObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"cosx"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"tgx"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"ctgx"))

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Lsin"))

ShowObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Lcos"))

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Ltg"))

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Lctg"))

HideObject2d(~HSpace,~Line_Sin)

ShowObject2d(~HSpace,~Line_Cos)

HideObject2d(~HSpace,~Line_Tg)

HideObject2d(~HSpace,~Line_Ctg)

HideObject2d(~HSpace,~LineDy)

ShowObject2d(~HSpace,~LineDX)

HideObject2d(~HSpace,~LineDtg)

HideObject2d(~HSpace,~LineDctg)

HideObject2d(~HSpace,~bord)

HideObject2d(~HSpace,~LineDX1)

HideObject2d(~HSpace,~LineDY1)

HideObject2d(~HSpace, ~ShowSin)

ShowObject2d(~HSpace, ~ShowCos)

HideObject2d(~HSpace, ~ShowTg)

HideObject2d(~Hspace, ~ShowCtg)

HideObject2d(~HSpace, GetObject2dByName(~HSpace, #0, "inf"))

endif

if (~show_tg)

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"f1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"f2"))

ShowObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"f3"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"f4"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"sin1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"cos1"))

ShowObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"tg1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"ctg1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"sinx"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"cosx"))

ShowObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"tgx"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"ctgx"))

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Lsin"))

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Lcos"))

ShowObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Ltg"))

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Lctg"))

HideObject2d(~HSpace,~Line_Sin)

HideObject2d(~HSpace,~Line_Cos)

ShowObject2d(~HSpace,~Line_Tg)

HideObject2d(~HSpace,~Line_Ctg)

HideObject2d(~HSpace,~LineDy)

HideObject2d(~HSpace,~LineDX)

ShowObject2d(~HSpace,~LineDtg)

HideObject2d(~HSpace,~LineDctg)

ShowObject2d(~HSpace,~bord)

ShowObject2d(~HSpace,~LineDX1)

ShowObject2d(~HSpace,~LineDY1)

HideObject2d(~HSpace, ~ShowSin)

HideObject2d(~HSpace, ~ShowCos)

ShowObject2d(~HSpace, ~ShowTg)

HideObject2d(~Hspace, ~ShowCtg)

ShowObject2d(~HSpace, GetObject2dByName(~HSpace, #0, "inf"))

endif

if (~show_ctg)

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"f1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"f2"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"f3"))

ShowObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"f4"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"sin1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"cos1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"tg1"))

ShowObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"ctg1"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"sinx"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"cosx"))

HideObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"tgx"))

ShowObject2d(~HSpace,GetObject2dByName(~HSpace,#0,"ctgx"))

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Lsin"))

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Lcos"))

HideObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Ltg"))

ShowObject2d(~HSpace, GetObject2dByName(~HSpace,#0,"Lctg"))

HideObject2d(~HSpace,~Line_Sin)

HideObject2d(~HSpace,~Line_Cos)

HideObject2d(~HSpace,~Line_Tg)

ShowObject2d(~HSpace,~Line_Ctg)

HideObject2d(~HSpace,~LineDy)

HideObject2d(~HSpace,~LineDX)

HideObject2d(~HSpace,~LineDtg)

ShowObject2d(~HSpace,~LineDctg)

HideObject2d(~HSpace,~bord)

ShowObject2d(~HSpace,~LineDX1)

ShowObject2d(~HSpace,~LineDY1)

HideObject2d(~HSpace, ~ShowSin)

HideObject2d(~HSpace, ~ShowCos)

HideObject2d(~HSpace, ~ShowTg)

ShowObject2d(~Hspace, ~ShowCtg)

ShowObject2d(~HSpace, GetObject2dByName(~HSpace, #0, "inf"))

endif

changed:=0

endif

Приложение 2.

Abs - Функция вычисляет абсолютное значение (модуль)

AddPoint2d - Добавить точку к линии

Cos - Вычисляет значение косинуса

CreatePen2d - Создать карандаш

CreatePolyLine2d - Создать линию

DeleteObject2d - Удалить объект

GetActualHeight2d - Функция возвращает актуальную высоту объекта

GetActualWidth2d - Функция возвращает актуальную ширину объекта

GetAngleByXY - Определение угла по значению координат

GetObject2dByName - Функция возвращает дескриптор объекта по его имени

GetObjectHeight2d - Функция возвращает размер объекта по у

GetObjectOrg2dx - Функция возвращает х – координату объекта

GetObjectOrg2dy - Функция возвращает у – координату объекта

GetObjectWidth2d - Функция возвращает размер объекта по х

GetPenObject2d - Функция возвращает дескриптор карандаша, который используется при рисовании линий

GetString2d - Функция возвращает текст строки

GetTextObject2d - Дескриптор логического текста, используемого в данном графическом объекте

GetTextString2d - Функция возвращает дескриптор текстового элемента

GetZOrder2d - Функция возвращает Z – порядок объекта

HideObject2d - Скрыть объект

ObjectToTop2d - Поставить объект выше всех по Z – порядку

rnd(n) - Функция возвращает случайное число от 0 до указанного числа n

SetObjectOrg2d - Функция, позволяющая переместить объект

SetString2d - Установить строку

SetVectorPoint2d - Изменить одну точку в линии

SetZOrder2d - Установить Z – порядок объекта

ShowObject2d - Показать объект

Sin - Функция вычисляет значение синуса

Tan - Функция вычисляет значение тангенса

Приложение 3.

// создаем дополнительные линии

Pen_Line:=CreatePen2d(~HSpace,PS_SOLID,5,rgb(255,172,64),R2_COPYPEN)

x1:=~xCCircle

y1:=~yCCircle-15*~step

y2:=~yCCircle+15*~step

Line_Sin:=CreatePolyLine2d(~HSpace,~Pen_Line,#0,~x1,~y1,~x1,~y2)

HideObject2d(~HSpace,~Line_Sin)

x1:=~xCCircle-15*~step

x2:=~xCCircle+15*~step

y1:=~yCCircle

Line_Cos:=CreatePolyLine2d(~HSpace,~Pen_Line,#0,~x1,~y1,~x2,~y1)

HideObject2d(~HSpace,~Line_Cos)

x2:=~xCCircle+15*~step

y1:=~yCCircle-17*~step

y2:=~yCCircle+17*~step

Line_Tg:=CreatePolyLine2d(~HSpace,~Pen_Line,#0,~x2,~y1,~x2,~y2)

HideObject2d(~HSpace,~Line_Tg)

x1:=~xCCircle-19*~step

x2:=~xCCircle+19*~step

y1:=~yCCircle-15*~step

y2:=~yCCircle+15*~step

Line_Ctg:=CreatePolyLine2d(~HSpace,~Pen_Line,#0,~x1,~y1,~x2,~y1)

HideObject2d(~HSpace,~Line_Ctg)

// описание построения круга

PenUpCircle:=CreatePen2d(~HSpace, PS_Solid, 4, rgb(30,120,230), R2_COPYPEN)

PenDownCircle:=CreatePen2d(~HSpace, PS_Dash, 1, GetPenColor2d(~HSpace, ~HPenCircle), R2_MASKPEN)

x:=~xCCircle-15*~step;

x_:=(~x-~xCCircle)/(15*~step)

y_:=sqrt(1-~x_*~x_)

y:=-15*~y_*~step+~yCCircle

HCircle:=CreatePolyLine2d(~HSpace,~PenUpCircle,#0,~x,~y)

HCircle2:=CreatePolyLine2d(~HSpace,~PenDownCircle,#0,~x,~y)

x:=~x+0.5

while(~x<=~xCCircle+15.1*~step)

x_:=(~x-~xCCircle)/(15*~step)

y_:=sqrt(1-~x_*~x_)

y:=-15*~y_*~step+~yCCircle

ret:=AddPoint2d(~HSpace,~HCircle,-1,~x,~y)

x:=~x+0.5;

endwhile

x:=~x-1;

while(~x>=~xCCircle-15.1*~step)

x_:=(~x-~xCCircle)/(15*~step)

y_:=-1*sqrt(1-~x_*~x_)

y:=-15*~y_*~step+~yCCircle

ret:=AddPoint2d(~HSpace,~HCircle2,-1,~x,~y)

x:=~x-0.5;

endwhile

Z:=GetZOrder2d(~HSpace, ~HCircle)

ret:=SetZOrder2d(~HSpace,~HCircle2,36)

xPoint:=~xCCircle+cos(~angle*PI/180)*~step*15

yPoint:=~yCCircle-sin(~angle*PI/180)*~step*15

Line:=CreatePolyLine2d(~HSPace,~HPen_Line,#0,~xCCircle,~yCCircle,~xPoint,~yPoint)

P:=CreatePolyLine2d(~HSpace,~HPen_P,#0,~xPoint,~yPoint,~xPoint,~yPoint)

ret:=SetVectorPoint2d(~HSpace,~LineDX,0,~xPoint,~yPoint)

ret:=SetVectorPoint2d(~HSpace,~LineDX,1,~xPoint,~yCCircle)

ret:=SetVectorPoint2d(~HSpace,~LineDy,0,~xPoint,~yPoint)

ret:=SetVectorPoint2d(~HSpace,~LineDy,1,~xCCircle,~yPoint)

ret:=SetVectorPoint2d(~HSpace,~LineDX1,0,~xPoint,~yPoint)

ret:=SetVectorPoint2d(~HSpace,~LineDX1,1,~xPoint,~yCCircle)

ret:=SetVectorPoint2d(~HSpace,~LineDy1,0,~xPoint,~yPoint)

ret:=SetVectorPoint2d(~HSpace,~LineDy1,1,~xCCircle,~yPoint)

// дополнительные линии, показывающие истинную величину

Show_Pen_Line1:=CreatePen2d(~HSpace,PS_SOLID,5,rgb(0,191,191),R2_COPYPEN)

ShowSin:=CreatePolyLine2d(~HSpace, ~Show_Pen_Line1, #0, 0, 0, 0, 0)

HideObject2d(~HSpace, ~ShowSin)

Show_Pen_Line2:=CreatePen2d(~HSpace,PS_SOLID,5,rgb(0,191,191),R2_COPYPEN)

ShowCos:=CreatePolyLine2d(~HSpace, ~Show_Pen_Line2, #0, 0, 0, 0, 0)

HideObject2d(~HSpace, ~ShowCos)

Show_Pen_Line3:=CreatePen2d(~HSpace,PS_SOLID,5,rgb(0,191,191),R2_COPYPEN)

ShowTg:=CreatePolyLine2d(~HSpace, ~Show_Pen_Line3, #0, 0, 0, 0, 0)

HideObject2d(~HSpace, ~ShowTg)

Show_Pen_Line4:=CreatePen2d(~HSpace,PS_SOLID,5,rgb(0,191,191),R2_COPYPEN)

ShowCtg:=CreatePolyLine2d(~HSpace, ~Show_Pen_Line4, #0, 0, 0, 0, 0)

HideObject2d(~HSpace, ~ShowCtg)

HPointMove := CreatePen2d(~HSpace, PS_SOLID, 10, rgb(255, 255, 0), R2_COPYPEN) // карандаш для дополнительной точки (tg и ctg)

// тангенс

ret:=SetVectorPoint2d(~HSpace,~LineDtg,0,~xCCircle,~yCCircle)

ret:=SetVectorPoint2d(~HSpace,~ShowTg,0,~xCCircle + 15*~step,~yCCircle)

k := ((~yPoint - ~yCCircle)/(~xPoint - ~xCcircle))

b := - ~k * ~xCCircle + ~yCCircle

memoryY:= ~k*(~xCCircle + 15*~step) + ~b

yf1 :=67

yf2 := ~yf1 + 34.5*~step

if (~memoryY < ~yf1)

xT := (~yf1 - ~b)/~k;

ret:=SetVectorPoint2d(~HSpace,~LineDtg,1,~xT, ~yf1)

ret:=SetVectorPoint2d(~HSpace,~ShowTg,1,~xCCircle + 15*~step, ~yf1)

meX:=~xT

meY:=~yf2

else

if (~memoryY > ~yf2)

xT := (~yf2 - ~b)/~k;

ret:=SetVectorPoint2d(~HSpace,~LineDtg,1,~xT, ~yf2)

ret:=SetVectorPoint2d(~HSpace,~ShowTg,1,~xCCircle + 15*~step, ~yf2)

meX:=~xT

meY:=~yf2

else

ret:=SetVectorPoint2d(~HSpace,~LineDtg,1,~xCCircle + 15*~step, ~memoryY)

ret:=SetVectorPoint2d(~HSpace,~ShowTg,1,~xCCircle + 15*~step, ~memoryY)

meX:=~xCCircle + 15*~step

meY:=~memoryY

endif

endif

bord:=CreatePolyLine2d(~HSpace,~HPointMove,#0,~meX,~meY,~meX,~meY)

HideObject2d(~HSpace,~bord)

// котангенс

ret:=SetVectorPoint2d(~HSpace,~LineDctg,0,~xCCircle,~yCCircle)

ret:=SetVectorPoint2d(~HSpace,~ShowCtg,0,~xCCircle,~yCCircle - 15*~Step)

k := ((~yPoint - ~yCCircle)/(~xPoint - ~xCcircle))

b := - ~k * ~xCCircle + ~yCCircle

memoryX:= ((~yCCircle-15*~step) - ~b)/~k

xf1 := GetObjectOrg2dx(~HSpace, GetObject2dByName(~HSpace,#0,"Field2"))

xf2 := ~xf1 + 38*~step

if (~memoryX < ~xf1)

yCt:= ~k * ~xf1 + ~b

ret:=SetVectorPoint2d(~HSpace,~LineDctg,1, ~xf1, ~yCt)

ret:=SetVectorPoint2d(~HSpace,~ShowCtg,1, ~xf1, ~yCCircle - 15*~Step)

else

if (~memoryX > ~xf2)

yCt:= ~k * ~xf2 + ~b

ret:=SetVectorPoint2d(~HSpace,~LineDctg,1,~xf2, ~yCt)

ret:=SetVectorPoint2d(~HSpace,~ShowCtg,1,~xf2, ~yCCircle - 15*~Step)

else

ret:=SetVectorPoint2d(~HSpace,~LineDctg,1,~memoryX, ~yCCircle - 15*~step)

ret:=SetVectorPoint2d(~HSpace,~ShowCtg,1,~memoryX, ~yCCircle - 15*~step)

endif

endif

HA:=CreatePolyLine2d(~HSpace,~HPenNull,#0,~xCCircle+10*~step,~yCCircle,~xCCircle+10*~step,~yCCircle)

ret:=SetString2d(~HSpace,~HTextx,string(ROUND(cos(~angle*PI/180),4)))

ret:=SetString2d(~HSpace,~HTexty,string(ROUND(sin(~angle*PI/180),4)))

Приложение 4.

if(!~F)

angle:=ROUND(GetAngleByXY(~xPos-~xCCircle,-1*(~yPos-~yCCircle))*180/PI,0)

isVisible:=0;

if(~angle>180)

angle:=~angle-360;

endif

endif

xPoint:=~xCCircle+cos(~angle*PI/180)*~step*15

yPoint:=~yCCircle-sin(~angle*PI/180)*~step*15

ret:=SetVectorPoint2d(~HSpace,~p,0,~xPoint,~yPoint)

ret:=SetVectorPoint2d(~HSpace,~p,1,~xPoint,~yPoint)

ret:=SetVectorPoint2d(~HSpace,~Line,1,~xPoint,~yPoint)

ret:=SetString2d(~HSpace,~HTextx,string(ROUND(cos(~angle*PI/180),4)))

ret:=SetString2d(~HSpace,~HTexty,string(ROUND(sin(~angle*PI/180),4)))

meDx:= FLOAT(GetString2d(~HSpace, ~HTextx))

meDy:= FLOAT(GetString2d(~HSpace, ~HTexty))

ret:=SetString2d(~HSpace,~HTextAlfa,string(~angle)+"°")

ret:= SetString2d(~HSpace, ~HTextSinx, "("+string(~angle)+"°) = "+string(ROUND(sin(~angle*PI/180),4)))

ret:= SetString2d(~HSpace, ~HTextCosx, "("+string(~angle)+"°) = "+string(ROUND(cos(~angle*PI/180),4)))

if (~show_ctg)

if(~angle!=0 && ~angle!=180)

ret:=SetString2d(~HSpace,~HTextCtgx,"("+string(~angle)+"°) = "+string(ROUND(1/tan(~angle*PI/180),4)))

HideObject2d(~HSpace, GetObject2dByName(~HSpace, #0, "inf"))

else

ret:=SetString2d(~HSpace,~HTextCtgx,"("+string(~angle)+"°) = ")

ShowObject2d(~HSpace, GetObject2dByName(~HSpace, #0, "inf"))

endif

endif

if (~show_tg)

if(~angle!=90 && ~angle!=-90)

ret:=SetString2d(~HSpace,~HTextTgx,"("+string(~angle)+"°) = "+string(ROUND(tan(~angle*PI/180),4)))

HideObject2d(~HSpace, GetObject2dByName(~HSpace, #0, "inf"))

else

if (~show_tg)

ret:=SetString2d(~HSpace,~HTextTgx,"("+string(~angle)+"°) = ")

ShowObject2d(~HSpace, GetObject2dByName(~HSpace, #0, "inf"))

endif

endif

endif

ret:=SetVectorPoint2d(~HSpace, ~ShowSin, 0, ~xCCircle, ~yCCircle)

ret:=SetVectorPoint2d(~HSpace, ~ShowSin, 1, ~xCCircle, ~yPoint)

ret:=SetVectorPoint2d(~HSpace, ~ShowCos, 0, ~xCCircle, ~yCCircle)

ret:=SetVectorPoint2d(~HSpace, ~ShowCos, 1, ~xPoint, ~yCCircle)

ret:=SetVectorPoint2d(~HSpace,~HLinePoint,0,~xC+~angle*PI/180*~step*15,~y0);

ret:=SetVectorPoint2d(~HSpace,~HLinePoint,1,~xC+~angle*PI/180*~step*15,~y0+(~Yc-~y0)*2);

ret:=SetVectorPoint2d(~HSpace,~LineDX,0,~xPoint,~yPoint)

ret:=SetVectorPoint2d(~HSpace,~LineDX,1,~xPoint,~yCCircle)

ret:=SetVectorPoint2d(~HSpace,~LineDy,0,~xPoint,~yPoint)

ret:=SetVectorPoint2d(~HSpace,~LineDy,1,~xCCircle,~yPoint)

ret:=SetVectorPoint2d(~HSpace,~LineDX1,0,~xPoint,~yPoint)

ret:=SetVectorPoint2d(~HSpace,~LineDX1,1,~xPoint,~yCCircle)

ret:=SetVectorPoint2d(~HSpace,~LineDy1,0,~xPoint,~yPoint)

ret:=SetVectorPoint2d(~HSpace,~LineDy1,1,~xCCircle,~yPoint)

// тангенс

if (~show_tg)

ret:=SetVectorPoint2d(~HSpace,~LineDtg,0,~xCCircle,~yCCircle)

ret:=SetVectorPoint2d(~HSpace, ~ShowTg, 0, ~xCCircle + 15*~step, ~yCCircle)

k := ((~yPoint - ~yCCircle)/(~xPoint - ~xCcircle))

b := - ~k * ~xCCircle + ~yCCircle

memoryY:= ~k*(~xCCircle + 15*~step) + ~b

yf2 := ~yf1 + 34.5*~step

if (~memoryY < ~yf1)

xT := (~yf1 - ~b)/~k;

ret:=SetVectorPoint2d(~HSpace,~LineDtg,1,~xT, ~yf1)

ret:=SetVectorPoint2d(~HSpace, ~ShowTg, 1, ~xCCircle + 15*~step, ~yf1)

HideObject2d(~HSpace,~bord)

else

if (~memoryY > ~yf2)

xT := (~yf2 - ~b)/~k;

ret:=SetVectorPoint2d(~HSpace,~LineDtg,1,~xT, ~yf2)

ret:=SetVectorPoint2d(~HSpace, ~ShowTg, 1, ~xCCircle + 15*~step, ~yf2)

HideObject2d(~HSpace,~bord)

else

ret:=SetVectorPoint2d(~HSpace,~LineDtg,1,~xCCircle + 15*~step, ~memoryY)

ShowObject2d(~HSpace,~bord)

ret:=SetVectorPoint2d(~HSpace,~bord,0,~xCCircle + 15*~step, ~memoryY)

ret:=SetVectorPoint2d(~HSpace,~bord,1,~xCCircle + 15*~step, ~memoryY)

ret:=SetVectorPoint2d(~HSpace, ~ShowTg, 1, ~xCCircle + 15*~step, ~memoryY)

endif

endif

endif

// котангенс

if (~show_ctg)

ret1:=SetVectorPoint2d(~HSpace,~LineDctg,0,~xCCircle,~yCCircle)

ret1:=SetVectorPoint2d(~HSpace, ~ShowCtg, 0, ~xCCircle, ~yCCircle - 15*~step)

k := ((~yPoint - ~yCCircle)/(~xPoint - ~xCcircle))

b := - ~k * ~xCCircle + ~yCCircle

memoryX:= ((~yCCircle-15*~step) - ~b)/~k

xf1 := GetObjectOrg2dx(~HSpace, GetObject2dByName(~HSpace,#0,"Field2"))

xf2 := ~xf1 + 38*~step

if (~memoryX < ~xf1)

yCt:= ~k * ~xf1 + ~b

ret1:=SetVectorPoint2d(~HSpace,~LineDctg,1, ~xf1, ~yCt)

ret1:=SetVectorPoint2d(~HSpace,~ShowCtg,1, ~xf1, ~yCCircle - 15*~step)

HideObject2d(~HSpace,~bord)

else

if (~memoryX > ~xf2)

yCt:= ~k * ~xf2 + ~b

ret1:=SetVectorPoint2d(~HSpace,~LineDctg,1, ~xf2, ~yCt)

ret1:=SetVectorPoint2d(~HSpace,~ShowCtg,1, ~xf2, ~yCCircle - 15*~step)

HideObject2d(~HSpace,~bord)

else

ret1:=SetVectorPoint2d(~HSpace,~LineDctg,1, ~memoryX, ~yCCircle - 15*~step)

ret1:=SetVectorPoint2d(~HSpace,~ShowCtg,1, ~memoryX, ~yCCircle - 15*~step)

ShowObject2d(~HSpace,~bord)

ret:=SetVectorPoint2d(~HSpace,~bord,0, ~memoryX, ~yCCircle - 15*~step)

ret:=SetVectorPoint2d(~HSpace,~bord,1, ~memoryX, ~yCCircle - 15*~step)

endif

endif

endif

22