Quantcast
Channel: Draw Spiral Cone Tikz - TeX - LaTeX Stack Exchange
Viewing all articles
Browse latest Browse all 4

Answer by g.kov for Draw Spiral Cone Tikz

$
0
0

enter image description here

A slightly different Asymptote solution:

% spicone.tex :
\documentclass{article}
\usepackage[inline]{asymptote}
\usepackage{lmodern}
\begin{document}
\begin{asy}    
settings.tex="pdflatex";
settings.prc=false;
settings.render=0;

import graph3;
import math;
size(200);
size3(150,180,100);
defaultpen(fontsize(10pt));

currentprojection=orthographic(camera=(8,6,4),up=Z,target=O,zoom=1);

real x(real t) {return t*cos(2pi*t*3);}
real y(real t) {return t*sin(2pi*t*3);}
real z(real t) {return t;}

real xMax=3, yMax=3, zMax=4;

path3 p=graph(x,y,z,0,2.735,operator ..);
triple P=relpoint(p,0.986);
triple Q=(P.x,P.y,0);

pen spiPen=deepcyan+1.2bp;
draw(p,spiPen,Arrow3(size=3));
dot(P);
label("$P$",P,Z+X);

guide3 h=P--Q;
guide3 rho=O--1.2Q; 

draw(h,  dashed+0.7bp);
draw(rho,dashed+0.7bp);

real arcd=1.5;
guide3 garc=arc(O,arcpoint(O--X,arcd),arcpoint(rho,arcd));
draw(garc,gray,Arrow3(size=3));

label("$z$",h,E);
label("$\rho$",rho,SW);
label("$\phi$",garc,NE);

pen xyzPen=darkblue+1bp;
xaxis3(0,xMax,xyzPen,Arrow3(size=3));
zaxis3("",0,zMax,xyzPen,Arrow3(size=3));

label("$Z$",zMax*Z,SW);
shipout(bbox(Fill(lightyellow)));
\end{asy}
\end{document}        
%
%% Process:
%
% pdflatex spicone.tex 
% asy -f pdf spicone-*.asy     
% pdflatex spicone.tex

EDIT:

A modified version, in which the spiral is split by cutting planes into front and back pieces: enter image description here

% spicone.tex :
\documentclass{article}
\usepackage[inline]{asymptote}
\usepackage{lmodern}
\begin{document}
\begin{asy}    
settings.tex="pdflatex";
settings.prc=false;
settings.render=0;

import solids;
import math;
size(200);
size3(200,150,100);
defaultpen(fontsize(10pt));

real xMax=3, yMax=3, zMax=4;
pen bgColor=paleyellow;

pen spiFrontPen=rgb(0.278,0.161,0.604)+0.9bp;
pen spiBackPen=orange+0.9bp;
pen xyzPen=darkblue+1bp;
arrowbar spiAr=Arrow(size=5,Fill);

add(new void(picture pic, transform t) {
  currentprojection=orthographic(camera=(8,6,4),up=Z,target=O,zoom=1);

  real x(real t) {return t*cos(2pi*t*3);}
  real y(real t) {return t*sin(2pi*t*3);}
  real z(real t) {return t;}  

  path3 p=graph(x,y,z,0,2.735,operator ..);
  triple P=relpoint(p,0.986);
  triple Q=(P.x,P.y,0);

  guide3 h=P--Q;
  guide3 rho=O--1.382Q; 

  real arcd=1.5;
  guide3 garc=arc(O,arcpoint(O--X,arcd),arcpoint(rho,arcd));
  draw(pic,t*project(garc),Arrow(size=3));

  surface wplane=surface(plane(cross(currentprojection.camera,zMax*Z),zMax*Z,O));

  real[][] wp0=intersections(p,rotate(180,Z)*wplane);
  real[][] wp1=intersections(p,wplane);

  for(int i=0;i<min(wp0.length,wp1.length);++i){
    draw(pic,t*project(subpath(p,wp0[i][0],wp1[i][0])),spiBackPen,spiAr);
  }

  draw(pic,t*project(O--(xMax,0,0)),xyzPen,Arrow(HookHead,size=5,Fill));  
  draw(pic,t*project(O--(0,0,zMax)),bgColor+2bp,Arrow(HookHead,size=5,Fill));  
  draw(pic,t*project(O--(0,0,zMax)),xyzPen,Arrow(HookHead,size=5,Fill));  

  wp0.push(new real[]{length(p),0,0}); // add the time value of the spral end-point  
  for(int i=0;i<wp1.length;++i) draw(pic,t*project(subpath(p,wp1[i][0],wp0[i+1][0])),bgColor+2bp);  
  for(int i=0;i<wp0.length;++i) dot(pic,t*project(point(p,wp0[i][0])),Fill(bgColor));
  for(int i=0;i<wp1.length;++i) dot(pic,t*project(point(p,wp1[i][0])),Fill(bgColor));
  for(int i=0;i<wp1.length;++i) draw(pic,t*project(subpath(p,wp1[i][0],wp0[i+1][0])),spiFrontPen,spiAr);

  draw(pic,t*project(h),dashed);
  draw(pic,t*project(rho),dashed);
  dot(pic,t*project(P),Fill(bgColor));
  dot(pic,t*project(Q),Fill(bgColor));

  label(pic,"$P$",t*project(P),N);
  label(pic,"$Q$",t*project(Q),NE);
  label(pic,"$z$",t*project(h),E);
  label(pic,"$\rho$",t*project(rho),SW);
  label(pic,"$\phi$",t*project(garc),NE);
  label(pic,"$Z$",t*project(zMax*Z),SW);
});

draw(O--0.8(xMax,yMax,zMax),nullpen);
shipout(bbox(Fill(bgColor)));
\end{asy}
\end{document}
%
%% Process:
%
% pdflatex spicone.tex 
% asy -f pdf spicone-*.asy     
% pdflatex spicone.tex

Viewing all articles
Browse latest Browse all 4

Latest Images

Trending Articles





Latest Images