#-------------------------------------------------- # The body ---------------------------------------- #-------------------------------------------------- konez0=circle(vector(0,0.2,-1.6),0.005)*scale(vector(1,1,1)); konez1=circle(vector(0,0,-0.8),0.3)*scale(vector(0.1,1,1)); uHvosta=circle(vector(0,0,0),0.35)*scale(vector(0.9,1,1)); uHvosta1=circle(vector(0,-0.3,1.5),0.55)*scale(vector(0.8,1,1)); hvostPlavnik=circle(vector(0,-0.4,3.4),0.75)*scale(vector(0.75,1,1)); vertPlavnikZ=circle(vector(0,-0.35,6.5),1.15)*scale(vector(0.7,1,1)); vertPlavnikP=circle(vector(0,-0.2,7.9),1.15)*scale(vector(0.8,1,1)); gorizPlavnikP=circle(vector(0,0.3,9.6),1)*scale(vector(1,1,1)); PlavnikRot=circle(vector(0,0.7,11),0.8)*scale(vector(1.2,1,1)); urovenRta=circle(vector(0,1.05,12.3),0.65)*scale(vector(1.3,1,1)); golova0=circle(vector(0,1.35,13.1),0.45)*scale(vector(1.4,1,1)); golova1=circle(vector(0,1.55,13.7),0.325)*scale(vector(1.4,1,1)); golova2=circle(vector(0,1.68,14),0.22)*scale(vector(1.4,1,1)); golova3=circle(vector(0,1.75,14.15),0.16)*scale(vector(1.4,1,1)); golova4=circle(vector(0,1.83,14.26),0.01)*scale(vector(1.4,1,1)); telo=sfromcrvs(list(konez0,konez1,uHvosta,uHvosta1,hvostPlavnik,vertPlavnikZ, vertPlavnikP,gorizPlavnikP,PlavnikRot, urovenRta,golova0,golova1,golova2,golova3,golova3,golova4),4); attrib(telo,"rgb","20,170,255"); #-------------------------------------------------- #-------------------------------------------------- #hvost hvostKontur=cbspline ( 3 , list( ctlpt ( E3,0.363333, 0.16, 0), ctlpt ( E3,0.363333, 0.16, 0), ctlpt ( E3,0.363333, 0.16, 0), ctlpt ( E3,0.363333, 0.16, 0), ctlpt ( E3,-0.0947627, 0.681391, 0), ctlpt ( E3,-0.161429, 0.618057, 0), ctlpt ( E3,0.031904, 0.0780574, 0), ctlpt ( E3,-0.454763, -0.341943, 0), ctlpt ( E3,-0.371429, -0.488609, 0), ctlpt ( E3,0.363333, 0.01, 0), ctlpt ( E3,0.363333, 0.01, 0), ctlpt ( E3,0.363333, 0.01, 0), ctlpt ( E3,0.363333, 0.01, 0), ctlpt ( E3,0.363333, 0.16, 0), ctlpt ( E3,0.363333, 0.16, 0), ctlpt ( E3,0.363333, 0.16, 0)), list(KV_OPEN)); hvostKonA=hvostKontur*trans(vector(0,0,0.005)); hvostKonB=hvostKontur*trans(vector(0,0,-0.005)); okonch1=circle(vector(0.2,0.14,0.005),0.0001); okonch2=circle(vector(0.2,0.14,-0.005),0.0001); attrib(hvostKonA,"rgb","255,255,255"); attrib(hvostKonB,"rgb","255,255,255"); attrib(okonch1,"rgb","255,255,255"); attrib(okonch2,"rgb","255,255,255"); hvost=sfromcrvs(list(okonch1,hvostKonA,hvostKonB,okonch2),2)* scale(vector(4,4,4))*ROTY(-90)*ROTZ(180)*ROTX(5)* trans(vector(0,0.45,-1.8)); attrib(hvost,"rgb","20,170,255"); #---------------------------------------------- #Verhnij plavnik #---------------------------------------------- verhPlavnKontur=cbspline ( 4 , list( ctlpt ( E3,-0.286667, -0.47, 0), ctlpt ( E3,-0.365636, -0.176088, 0), ctlpt ( E3,-0.308969, 0.0705782, 0), ctlpt ( E3,-0.305636, 0.0705782, 0), ctlpt ( E3,-0.0289693, -0.0727551, 0), ctlpt ( E3,0.0966667, -0.47, 0), ctlpt ( E3,0.0966667, -0.47, 0), ctlpt ( E3,0.0966667, -0.47, 0), ctlpt ( E3,0.0966667, -0.47, 0), ctlpt ( E3,0.0966667, -0.47, 0), ctlpt ( E3,-0.286667, -0.47, 0), ctlpt ( E3,-0.286667, -0.47, 0), ctlpt ( E3,-0.286667, -0.47, 0), ctlpt ( E3,-0.286667, -0.47, 0)), list(KV_OPEN)); verhPlavn1=verhPlavnKontur*trans(vector(0,0,0.005)); verhPlavn2=verhPlavnKontur*trans(vector(0,0,-0.005)); attrib(verhPlavn1,"rgb","20,170,255"); attrib(verhPlavn2,"rgb","20,170,255"); okonch1=circle(vector(-0.2,-0.2,0.005),0.0001); okonch2=circle(vector(-0.2,-0.2,-0.005),0.0001); attrib(okonch1,"rgb","20,170,255"); attrib(okonch2,"rgb","20,170,255"); #view(list(verhPlavn1,verhPlavn2,okonch1,okonch2),on); verhPlavnik=sfromcrvs(list(okonch1,verhPlavn1,verhPlavn1,verhPlavn2,verhPlavn2, okonch2),2)*ROTY(-90)*ROTX(-5)* scale(vector(3.2,3.2,3.2))*trans(vector(0,2.3,7.5)); attrib(verhPlavnik,"rgb","20,170,255"); #--------------------------------------------------------- #bokovoj plavnik #--------------------------------------------------------- bokPlavnKontur=cbspline ( 3 , list( ctlpt ( E3,-0.536667, -0.44, 0), ctlpt ( E3,-0.446667, -0.416667, 0), ctlpt ( E3,-0.593333, 0.01, 0), ctlpt ( E3,-0.9, 0.326667, 0), ctlpt ( E3,-0.36, 0.19, 0), ctlpt ( E3,0.02, -0.44, 0), ctlpt ( E3,0.02, -0.44, 0), ctlpt ( E3,0.02, -0.44, 0), ctlpt ( E3,0.02, -0.44, 0), ctlpt ( E3,-0.536667, -0.44, 0), ctlpt ( E3,-0.536667, -0.44, 0), ctlpt ( E3,-0.536667, -0.44, 0), ctlpt ( E3,-0.536667, -0.44, 0)), list(KV_OPEN)); bokPlavn1=bokPlavnKontur*trans(vector(0,0,0.005)); bokPlavn2=bokPlavnKontur*trans(vector(0,0,-0.005)); bokPlavn=sfromcrvs(list(okonch1,bokPlavn1,bokPlavn2,okonch2),2)* scale(vector(4,4,4)); bokPlavnA=bokPlavn*ROTX(90)*ROTY(269)*ROTX(-20)*trans(vector(-2.41,0,9.49)); attrib(bokPlavn1,"rgb","20,170,255"); attrib(bokPlavn2,"rgb","20,170,255"); attrib(bokPlavnA,"rgb","20,170,255"); bokPlavnB=bokPlavnA*ROTZ(-180)*ROTX(-42)*trans(vector(0.01,-6.35,2.49)); attrib(bokPlavnB,"rgb","20,170,255"); #---------------------------------------------------- #eyes #------------------------------------------------------- eye=SPHERE(vector(0,2.5,11.7),0.15)*scale(vector(0.5,0.5,1)); eyeLeft=eye*trans(vector(-0.7,-4.3,0.5))*ROTX(-20); attrib(eyeLeft,"rgb","255,255,255"); eyeRight=eye*trans(vector(0.7,-4.3,0.5))*ROTX(-20); attrib(eyeRight,"rgb","255,255,255"); #------------------------------------------------------ #rot #------------------------------------------------------ rot=box(vector(-5,-3.65,11.7),10,0.06,12)*ROTX(-20); attrib(rot,"rgb","20,170,255"); teloRot=convex(telo-rot); attrib(teloRot,"rgb","20,170,255"); shark=list(teloRot,hvost,verhPlavnik,bokPlavnA,bokPlavnB,eyeLeft, eyeRight); view(shark,on); save("/tmp/oleg/shark",shark); exit();