// e^(i t) のグラフ。 //「右手系」を「左手系」に直すため、x座標と y座標とを入れ換えてある。 //そのためすこし見にくい。 kaiten:=4*PI: theta0:=float(3*PI/4): P_list:=[point(float(cos(theta0)),theta0,float(sin(theta0)))]: //色を決める関数。 //[r,g,b] を返す。 //r,g,b はそれぞれ 0から1までの値だが、適当に丸めて //「不正な値」が返らないように注意する必要がある。 colorfunc:=proc(x_coord,y_coord,z_coord,t_val) local c; begin // c:=float((t_val+kaiten)/(kaiten*2)): c:=1-float((z_coord+1)/2.5): [1-c,1-c,(1-c)]: end_proc: plot3d( PlotDevice=["rasen.gif",Gif], Labeling=FALSE ,CameraPoint=[226,-979,-52] ,Axes=Origin ,AxesOrigin=[0,0,0] ,[Mode=Curve,[cos(t),t,sin(t)],t=[-float(kaiten),float(kaiten)] ,Color=[Function,colorfunc] ,Smoothness=[5] ,LineWidth=30 ] ,[Mode=Curve ,[ (t-theta0)*(-sin(theta0))+cos(theta0) , t ,(t-theta0)* cos(theta0) +sin(theta0) ] ,t=[theta0-1,theta0+2] ,Color=[Function,colorfunc] ] ,[Mode=List, P_list ,LineWidth=50 ] );