function ob = fcone(Ra,ha,x0,y0,z0,or,tp) % function ob = fcone(Ra,ha,x0,y0,z0,or,tp) % Ra = rayon de la base % ha = hauteur % x0 = position en x % y0 = position en y % z0 = position en z % or = orientation (11=axe X pos;12=axe X nég;21=axe Y pos;22=axe Y nég; % 31=axe Z pos;32=axe Z nég) % tp = type (1=surf;2=surfl) [ra,th]=meshgrid(0:Ra/10:Ra,0:pi/20:2*pi); x=ra.*cos(th); y=ra.*sin(th); z=ha-ha*ra/Ra; switch tp case 1 switch or case 11 ob=surf(z+x0,x+y0,y+z0); case 12 ob=surf(-z+x0,x+y0,y+z0); case 21 ob=surf(x+x0,z+y0,y+z0); case 22 ob=surf(x+x0,-z+y0,y+z0); case 31 ob=surf(x+x0,y+y0,z+z0); case 32 ob=surf(x+x0,y+y0,-z+z0); end case 2 switch or case 11 ob=surfl(z+x0,x+y0,y+z0); case 12 ob=surfl(-z+x0,x+y0,y+z0); case 21 ob=surfl(x+x0,z+y0,y+z0); case 22 ob=surfl(x+x0,-z+y0,y+z0); case 31 ob=surfl(x+x0,y+y0,z+z0); case 32 ob=surfl(x+x0,y+y0,-z+z0); end end %© by Cédric Blaser / 27.11.2001