How do I draw this shape? please help me .
Or introduce an article you can draw with that shape
thanks a lot
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It only takes a minute to sign up.
Sign up to join this communityHow do I draw this shape? please help me .
Or introduce an article you can draw with that shape
thanks a lot
It is rather straightforward with asymptote. As I mentioned in the comments, here you do not have to put in the 3D features by hand. Of course, I do not know the positions of the smaller arrows, so I use random numbers, nor the precise slope, so I guessed one.
\documentclass[border=5pt]{standalone}
\usepackage{asypictureB}
\begin{document}
\begin{asypicture}{name=AsyVF}
import graph3;
import three;
import solids;
size(6cm,8cm);
settings.render = 4;
currentprojection = perspective((3,10,4), up=Z,autoadjust=true);//,autoadjust=true
currentlight=(2,15,5);
// coordinate axes
//draw(O -- 2X,L=Label("$x$",position=EndPoint));
//draw(O -- 2Y,L=Label("$y$", position=EndPoint));
//draw(-2Z -- 2Z,L=Label("$z$", position=EndPoint));
// fat arrow
draw(O -- -X, arrow=Arrow3(), p=lightgray+linewidth(3pt),light=currentlight);
pen color = white;
material planepen = material(diffusepen=opacity(1), emissivepen=0.8*color);
path3 mybox1 = (0,1,1) -- (0.1,1,1) -- (0.1,1,-1) -- (0,1,-1) -- cycle;
for (int rot=0; rot<=3; rot+=1)
{
draw(surface(rotate(rot*90,X)*mybox1), surfacepen=planepen);
draw(surface(scale3(0.9)*rotate(rot*90,X)*mybox1), surfacepen=planepen);
}
//draw(mybox1);
path3 mybox2 = (0,1,1) -- (0,-1,1) -- (0,-1,-1) -- (0,1,-1) -- (0,1,1) --
(0,0.9,0.9) -- (0,0.9,-0.9) -- (0,-0.9,-0.9) -- (0,-0.9,0.9) -- (0,0.9,0.9)
-- (0,1,1) -- cycle;
for (real s=0.0; s<=0.1; s+=0.1)
{
draw(surface(shift(s*X)*mybox2), surfacepen=planepen);
}
draw(scale3(0.05)*unitsphere,lightgray,light=currentlight);
srand(4);
for (int irun=0; irun<=21; irun+=1)
{
real myx = 2*(1-2*unitrand());
real myy = 1.2*(1-2*unitrand());
real myz = 1.2*(1-2*unitrand());
draw(myx*X+myy*Y+myz*Z -- myx*X+myy*Y+myz*Z+0.5*(-X+Z), arrow=Arrow3(), p=linewidth(0.5pt),light=currentlight);
draw(shift(myx*X+myy*Y+myz*Z)*scale3(0.05)*unitsphere,lightgray,light=currentlight);
}
\end{asypicture}
\end{document}