// ketlb use("KetCindyPlugin"); Dircdy=loaddirectory; setdirectory(plugindirectory); import("ketcindy.ini"); X.x=pi; pC=[-1,0]; pO=[0,0]; Lastx=0; ptL=[[0,0],[pi,0]]; kcL=[]; ctrall=12; drwsin=0; Opt=["dr,2","Color=red","Msg=n"]; Findpointongraph(x,tt):=( regional(xmx,//tt, t2,flg,posx,tmp,tmp1,pP,pQ, op,eps); eps=5*10^(-2); flg=0; xmx=3.5; tt=2*seconds(); posx=0; if(posx>x-eps, stopanimation(); flg=1; ); if((flg==0)&(tt<=pi/2), Listplot("t",[[0,0],x*[cos(tt),sin(tt)]],Opt); flg=1; ); if((flg==0)&(tt-pi/22"]); t2=min([t2,2]); posx=pP_1+t2/2*(X.x-pP_1); pQ=[posx,pP_2]; Listplot("h",[pP,pQ],op); if(abs(posx-X.x)eps, Lastx=tmp_1; ptL=append(ptL,tmp); ptL=sort(ptL,[#_1]); ); ); ); flg=1; ); ); Initbezier(ptL):=( regional(kL,cL,pt1,pt2,tmp,tmp1); kL=ptL; if(!contains(ptL,[0,0]), kL=prepend([0,0],kL); ); cL=""; forall(2..(length(kL)), pt1=kL_(#-1); pt2=kL_#; tmp=unicode(text(64+#-1),base->10); tmp1=tmp+"1.xy="+Textformat((2*pt1+pt2)/3,3)+";"; parse(tmp1); Ptpos(tmp+"1",(2*pt1+pt2)/3); tmp1=tmp+"2.xy="+Textformat((pt1+2*pt2)/3,3)+";"; parse(tmp1); Ptpos(tmp+"2",(pt1+2*pt2)/3); cL=cL+","+tmp+"1,"+tmp+"2"; ); cL="["+substring(cL,1,length(cL))+"];"; cL=parse(cL); homectr=false; [kL,cL]; ); Preparectrpt(nn):=( //no ketjs on regional(tmp,tmp1,tmp2,out); out=[]; forall(1..nn, tmp=unicode(text(64+#),base->10); tmp1=[7,YMAX-#/4]; tmp2=[7.5,YMAX-#/4]; Putpoint(tmp+"1",tmp1):Putpoint(tmp+"2",tmp2): inspect(parse(tmp+"1"),"ptsize",2); inspect(parse(tmp+"2"),"ptsize",2); inspect(parse(tmp+"1"),"labeled",false); inspect(parse(tmp+"2"),"labeled",false); out=concat(out,[parse(tmp+"1"),parse(tmp+"2")]); ); out; ); //no ketjs off Resetctrpt(nn):=( regional(tmp,tmp1,tmp2); forall(1..nn, tmp=unicode(text(64+#),base->10); tmp1=Textformat([7,YMAX-#/4],5); tmp2=Textformat([7.5,YMAX-#/4],5); parse(tmp+"1.xy="+tmp1+";"); Ptpos(tmp+"1",[7,YMAX-#/4]); parse(tmp+"2.xy="+tmp2+";"); Ptpos(tmp+"2",[7.5,YMAX-#/4]); ); homectr=true; ); stopanimation(); Resetctrpt(ctrall); /////////////////////////////////////////////// //figure /////////////////////////////////////////////// Ketinit(); Setparent(Cdyname()+"fig"); Setketcindyjs(["Scale=1.2","Nolabel=all","Grid=[0,0,0,0.2]"]); Setwindow([-2.5,6.5],[-1.5,pi]); Slider("X",[0,0],[2*pi,0]); //parse("Xl.xy=[0,0];"); //parse("Xr.xy=[2*pi,0];"); //Addax(0); Setax([7,"se"]); Circledata("0",[pC,pO],["dr,1.5","Msg=n"]); Bowdata("0",[pC,pO],[1.4,0.3,"E=1","do,1,1.2","Msg=n"]); Letter([[2,YMAX],"s1","Graph of $y=\sin x$"],["size->30"]); Listplot("0",[pO,[x,0]],Opt); x=X.x; x=round(x*100)/100; Expr([x,-0.05],"s1","x",[]); Expr([x,0.1],"n1",text(x),[]); Htickmark([1,"1",2,"2",3,"3",4,"4",5,"5",6,"6"]); Vtickmark([-1,"-1",1,"1",2,"2",3,"3"]); op=["Msg=n","do,0.8"]; forall(1..6, Listplot("v"+text(#),[[#,-1],[#,3]],op); ); forall(remove((-1)..3,[0]), Listplot("h"+text(#+2),[[0,#],[6,#]],op); ); if(length(ptL)>0, Pointdata("0",ptL,["Size=3","Color=green","Msg=n"]); ); //if(abs(Lastx-x)>0.09, Findpointongraph(x,2*seconds()); //); if(length(kcL)==0, //no ketjs on tmp=Preparectrpt(ctrall); ); //no ketjs off if(!homectr, Bezier("1",kcL_1,kcL_2,["Num=20"]); tmp=apply(bz1,abs(#_2-sin(#_1))); mean=sum(tmp)/length(bz1); tmp="Diff : "+Sprintf(mean*1000,2)+" ($\times 10^{-3}$)"; Letter(A,"e",tmp,["size->24"]); ); if(drwsin, Plotdata("sin","sin(x)","x=[0,XMAX]",["Color=blue"]); ); Figpdf(); Windispg();