//ketlib Ketinit(); Ketinit3d(0); ptL=[[2,2,-2],[2,-2,-2],[-2,-2,-2],[-2,2,-2], [2,2,2],[2,-2,2],[-2,-2,2],[-2,2,2]]; fL=[[1,2,6,5],[1,5,8,4],[1,4,3,2], [2,3,7,6],[3,4,8,7],[5,6,7,8]]; Putaxes3d(5);// no ketjs on Xyzax3data("","x=[-4.5,4.5]"," =[-0.5,0.5]","z=[-4.5,4.5]"); Pointdata3d("A",1/sqrt(3)*[1,1,1],["Size=3","Color=red"]); Perpplane("B-C","O",[1,1,1],["Size=3","Color=red"]); Setglist(); mf(s):=( regional(Ps3d,Qs3d,matT,stL,polyheds); Ps3d=Rotatepoint3d(B3d,A3d,s); Qs3d=Rotatepoint3d(C3d,A3d,s); matT=[A3d,Ps3d,Qs3d]; stL=apply(ptL,matT*#); polyheds=[stL,fL]; Vertexedgeface("",polyheds,["Label=0"]); Nohiddenbyfaces("",["ax3d","phe3d"],["phf3d"], ["nodisp"],["nodisp"]); frn3d; ); ctr=1; sL=[]; ndiv=48; forall(0..ndiv,nn, s=2*pi/ndiv*nn; tmp=mf(s); dt=apply(tmp,parse(#)); Defvar("dt"+ctr,dt); sL=append(sL,s); ctr=ctr+1; ); // no ketjs off //figures Start3d("S"); Setangle(90,270); Addglist();// no ketjs Slider("S",[0,SW.y-2],[5,SW.y-2]); tmp=["O","Oz","X","Xz","Y","Yz","Z","Zz"];//no ketjs on Setketcindyjs(["No=all","Rm="+text(tmp)]); Ketcindyjsdata(["A3d",A3d,"B3d",B3d,"C3d",C3d,"O3d",O3d]); Ketcindyjsdata(["sL",sL]); forall(0..ndiv, tmp="dt"+text(#+1); Ketcindyjsdata([tmp,parse(tmp)]); );//no ketjs off mf2(s):=( regional(tmp,tmp1,tmp2); tmp=min(apply(1..(length(sL)),|sL_#-s|)); tmp1=select(1..(length(sL)),|sL_#-s|==tmp); tmp=parse("dt"+text(tmp1_1)); forall(1..(length(tmp)), Spaceline(text(#),tmp_#,["Msg=n"]); ); ); ss=Animationparam(0,2*S.x,[0,20*2*pi]); mf2(mod(ss,2*pi)); Windispg();