JS片段: [removed] var {atan2,sqrt,sin,cos,PI,acos} = Math; function project3D(x,y,z,vars){ x-=vars.camX,y-=vars.camY,z-=vars.camZ; p=atan2(x,z),d=sqrt(z*z x*x),x=sin(p-vars.yaw)*d,z=cos(p-vars.yaw)*d; p=atan2(y,z),d=sqrt(y*y z*z),y=sin(p-vars.pitch)*d,z=cos(p-vars.pitch)*d; n=-9,b=1,l=9,d=1,e=0,f=0,g=x,h=z,k=(h-f)*(l-n)-(g-e)*(d-b),m=((g-e)*(b-f)-(h-f)*(n-e))/k; return {x:vars.cx (n m*(l-n))*vars.scale,y:vars.cy y/z*vars.scale,d:sqrt(x*x y*y z*z)}; } function elevation(x,y,z){ return acos(z / sqrt(x*x y*y z*z)); } function subdivide(shape,subdivisions){ var t=shape.segs.length; for(var i=0;i
1