3d plot with reflected arrows in “planes” using TikZ












2















I'm trying to reproduce this picture in TikZ, but I don't know how to get those 3D "planes" of arrows shown.



goal



Here is my attempt so far, which isn't remotely close to what I want (and mostly obtained from here anyway):



documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}
draw (-4,0) arc (180:360:4 and 1);
draw [dashed] (-4,0) arc (180:0:4 and 1);
draw (-4,0) arc (180:0:4 and 4);
draw (0,0,0) -- ++(0,-.5,-.5) -- ++(0,.5,0) -- ++(0,.5,.5) -- cycle;
draw (0,0) -- ++(-.5,0) -- ++(0,.5) -- ++(.5,0) -- cycle;
draw [thick, dashed] (0,0) -- ++(-5,0);
draw [thick, {latex}-] (0,0) -- ++(172.5:5cm);
draw [thick, dashed] (0,0) -- ++(0,5);
draw [thick, dashed] (0,0,0) -- ++(0,-2.5,-2.5);
draw [thick, -{latex}] (0,0) -- ++(45:5cm);
draw [red, thick, <->] (0,0) ++(172.5:4.5cm) arc (172.5:180:4.5cm) node [midway, left] () {$gamma_i$};
draw [red, thick, <-] (0,0) ++(180:1.5cm) arc (180:532:1.5cm) node [midway, right] () {$varphi_i$};
end{tikzpicture}
end{document}


EDIT: If TikZ isn't good for doing this, any other package will do at this point!










share|improve this question

























  • (As an aside, I asked a TikZ related question a few days ago with a similar crap MWE; since I don't want to seem like I'm [ab]using the answerers here, is there maybe something I can pay them? Or give them points? I feel bad just asking for someone to help me solve a problem and then just saying thank you; also, I know this should be something asked in the meta board but I included it here in case someone were to bring it up.)

    – Alborz
    Apr 16 '16 at 0:34











  • You can accept the answer to a question which helps you most. You can also vote up any answer which helps you (including the one you accept, if you wish). Also, if you use something in a later question which you learnt from an earlier answer, you can (and should) attribute it to the person who answered. (Within reason, obviously. For significant chunks of code.) Also, people appreciate your including MWEs, especially if they improve as you get more experience ;).

    – cfr
    Apr 16 '16 at 0:40











  • TikZ is really not great for 3D. If you need to draw 3D stuff, you would be well-advised to learn to use one of the tools which is better suited to it. In particular, to use a tool which actually draws in 3D. TikZ can't do this. It draws in 2D. You can fake 3D but it is only fake. There's no 3D object there you can tweak, for example. If the perspective changes, you typically need to redo everything. tikz-3dplot can help in automating some of the calculations needed to fake 3D in TikZ 2D. But it is still fake e.g. you have to draw things in the right order. There's no real depth.

    – cfr
    Apr 16 '16 at 0:44











  • Oh, and you can obviously hire people to draw things for you. But you can't hire them here ;).

    – cfr
    Apr 16 '16 at 0:45











  • @cfr good point, just added where I based my code from :) also, hmm that's unfortunate then, what tools do you recommend? I've heard of asymptote and PSTricks but that's all I am aware of... [and darn! I wish I could hire them here lol]

    – Alborz
    Apr 16 '16 at 0:46
















2















I'm trying to reproduce this picture in TikZ, but I don't know how to get those 3D "planes" of arrows shown.



goal



Here is my attempt so far, which isn't remotely close to what I want (and mostly obtained from here anyway):



documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}
draw (-4,0) arc (180:360:4 and 1);
draw [dashed] (-4,0) arc (180:0:4 and 1);
draw (-4,0) arc (180:0:4 and 4);
draw (0,0,0) -- ++(0,-.5,-.5) -- ++(0,.5,0) -- ++(0,.5,.5) -- cycle;
draw (0,0) -- ++(-.5,0) -- ++(0,.5) -- ++(.5,0) -- cycle;
draw [thick, dashed] (0,0) -- ++(-5,0);
draw [thick, {latex}-] (0,0) -- ++(172.5:5cm);
draw [thick, dashed] (0,0) -- ++(0,5);
draw [thick, dashed] (0,0,0) -- ++(0,-2.5,-2.5);
draw [thick, -{latex}] (0,0) -- ++(45:5cm);
draw [red, thick, <->] (0,0) ++(172.5:4.5cm) arc (172.5:180:4.5cm) node [midway, left] () {$gamma_i$};
draw [red, thick, <-] (0,0) ++(180:1.5cm) arc (180:532:1.5cm) node [midway, right] () {$varphi_i$};
end{tikzpicture}
end{document}


EDIT: If TikZ isn't good for doing this, any other package will do at this point!










share|improve this question

























  • (As an aside, I asked a TikZ related question a few days ago with a similar crap MWE; since I don't want to seem like I'm [ab]using the answerers here, is there maybe something I can pay them? Or give them points? I feel bad just asking for someone to help me solve a problem and then just saying thank you; also, I know this should be something asked in the meta board but I included it here in case someone were to bring it up.)

    – Alborz
    Apr 16 '16 at 0:34











  • You can accept the answer to a question which helps you most. You can also vote up any answer which helps you (including the one you accept, if you wish). Also, if you use something in a later question which you learnt from an earlier answer, you can (and should) attribute it to the person who answered. (Within reason, obviously. For significant chunks of code.) Also, people appreciate your including MWEs, especially if they improve as you get more experience ;).

    – cfr
    Apr 16 '16 at 0:40











  • TikZ is really not great for 3D. If you need to draw 3D stuff, you would be well-advised to learn to use one of the tools which is better suited to it. In particular, to use a tool which actually draws in 3D. TikZ can't do this. It draws in 2D. You can fake 3D but it is only fake. There's no 3D object there you can tweak, for example. If the perspective changes, you typically need to redo everything. tikz-3dplot can help in automating some of the calculations needed to fake 3D in TikZ 2D. But it is still fake e.g. you have to draw things in the right order. There's no real depth.

    – cfr
    Apr 16 '16 at 0:44











  • Oh, and you can obviously hire people to draw things for you. But you can't hire them here ;).

    – cfr
    Apr 16 '16 at 0:45











  • @cfr good point, just added where I based my code from :) also, hmm that's unfortunate then, what tools do you recommend? I've heard of asymptote and PSTricks but that's all I am aware of... [and darn! I wish I could hire them here lol]

    – Alborz
    Apr 16 '16 at 0:46














2












2








2








I'm trying to reproduce this picture in TikZ, but I don't know how to get those 3D "planes" of arrows shown.



goal



Here is my attempt so far, which isn't remotely close to what I want (and mostly obtained from here anyway):



documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}
draw (-4,0) arc (180:360:4 and 1);
draw [dashed] (-4,0) arc (180:0:4 and 1);
draw (-4,0) arc (180:0:4 and 4);
draw (0,0,0) -- ++(0,-.5,-.5) -- ++(0,.5,0) -- ++(0,.5,.5) -- cycle;
draw (0,0) -- ++(-.5,0) -- ++(0,.5) -- ++(.5,0) -- cycle;
draw [thick, dashed] (0,0) -- ++(-5,0);
draw [thick, {latex}-] (0,0) -- ++(172.5:5cm);
draw [thick, dashed] (0,0) -- ++(0,5);
draw [thick, dashed] (0,0,0) -- ++(0,-2.5,-2.5);
draw [thick, -{latex}] (0,0) -- ++(45:5cm);
draw [red, thick, <->] (0,0) ++(172.5:4.5cm) arc (172.5:180:4.5cm) node [midway, left] () {$gamma_i$};
draw [red, thick, <-] (0,0) ++(180:1.5cm) arc (180:532:1.5cm) node [midway, right] () {$varphi_i$};
end{tikzpicture}
end{document}


EDIT: If TikZ isn't good for doing this, any other package will do at this point!










share|improve this question
















I'm trying to reproduce this picture in TikZ, but I don't know how to get those 3D "planes" of arrows shown.



goal



Here is my attempt so far, which isn't remotely close to what I want (and mostly obtained from here anyway):



documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}
draw (-4,0) arc (180:360:4 and 1);
draw [dashed] (-4,0) arc (180:0:4 and 1);
draw (-4,0) arc (180:0:4 and 4);
draw (0,0,0) -- ++(0,-.5,-.5) -- ++(0,.5,0) -- ++(0,.5,.5) -- cycle;
draw (0,0) -- ++(-.5,0) -- ++(0,.5) -- ++(.5,0) -- cycle;
draw [thick, dashed] (0,0) -- ++(-5,0);
draw [thick, {latex}-] (0,0) -- ++(172.5:5cm);
draw [thick, dashed] (0,0) -- ++(0,5);
draw [thick, dashed] (0,0,0) -- ++(0,-2.5,-2.5);
draw [thick, -{latex}] (0,0) -- ++(45:5cm);
draw [red, thick, <->] (0,0) ++(172.5:4.5cm) arc (172.5:180:4.5cm) node [midway, left] () {$gamma_i$};
draw [red, thick, <-] (0,0) ++(180:1.5cm) arc (180:532:1.5cm) node [midway, right] () {$varphi_i$};
end{tikzpicture}
end{document}


EDIT: If TikZ isn't good for doing this, any other package will do at this point!







tikz-pgf 3d tikz-3dplot






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Apr 13 '17 at 12:35









Community

1




1










asked Apr 16 '16 at 0:34









AlborzAlborz

150217




150217













  • (As an aside, I asked a TikZ related question a few days ago with a similar crap MWE; since I don't want to seem like I'm [ab]using the answerers here, is there maybe something I can pay them? Or give them points? I feel bad just asking for someone to help me solve a problem and then just saying thank you; also, I know this should be something asked in the meta board but I included it here in case someone were to bring it up.)

    – Alborz
    Apr 16 '16 at 0:34











  • You can accept the answer to a question which helps you most. You can also vote up any answer which helps you (including the one you accept, if you wish). Also, if you use something in a later question which you learnt from an earlier answer, you can (and should) attribute it to the person who answered. (Within reason, obviously. For significant chunks of code.) Also, people appreciate your including MWEs, especially if they improve as you get more experience ;).

    – cfr
    Apr 16 '16 at 0:40











  • TikZ is really not great for 3D. If you need to draw 3D stuff, you would be well-advised to learn to use one of the tools which is better suited to it. In particular, to use a tool which actually draws in 3D. TikZ can't do this. It draws in 2D. You can fake 3D but it is only fake. There's no 3D object there you can tweak, for example. If the perspective changes, you typically need to redo everything. tikz-3dplot can help in automating some of the calculations needed to fake 3D in TikZ 2D. But it is still fake e.g. you have to draw things in the right order. There's no real depth.

    – cfr
    Apr 16 '16 at 0:44











  • Oh, and you can obviously hire people to draw things for you. But you can't hire them here ;).

    – cfr
    Apr 16 '16 at 0:45











  • @cfr good point, just added where I based my code from :) also, hmm that's unfortunate then, what tools do you recommend? I've heard of asymptote and PSTricks but that's all I am aware of... [and darn! I wish I could hire them here lol]

    – Alborz
    Apr 16 '16 at 0:46



















  • (As an aside, I asked a TikZ related question a few days ago with a similar crap MWE; since I don't want to seem like I'm [ab]using the answerers here, is there maybe something I can pay them? Or give them points? I feel bad just asking for someone to help me solve a problem and then just saying thank you; also, I know this should be something asked in the meta board but I included it here in case someone were to bring it up.)

    – Alborz
    Apr 16 '16 at 0:34











  • You can accept the answer to a question which helps you most. You can also vote up any answer which helps you (including the one you accept, if you wish). Also, if you use something in a later question which you learnt from an earlier answer, you can (and should) attribute it to the person who answered. (Within reason, obviously. For significant chunks of code.) Also, people appreciate your including MWEs, especially if they improve as you get more experience ;).

    – cfr
    Apr 16 '16 at 0:40











  • TikZ is really not great for 3D. If you need to draw 3D stuff, you would be well-advised to learn to use one of the tools which is better suited to it. In particular, to use a tool which actually draws in 3D. TikZ can't do this. It draws in 2D. You can fake 3D but it is only fake. There's no 3D object there you can tweak, for example. If the perspective changes, you typically need to redo everything. tikz-3dplot can help in automating some of the calculations needed to fake 3D in TikZ 2D. But it is still fake e.g. you have to draw things in the right order. There's no real depth.

    – cfr
    Apr 16 '16 at 0:44











  • Oh, and you can obviously hire people to draw things for you. But you can't hire them here ;).

    – cfr
    Apr 16 '16 at 0:45











  • @cfr good point, just added where I based my code from :) also, hmm that's unfortunate then, what tools do you recommend? I've heard of asymptote and PSTricks but that's all I am aware of... [and darn! I wish I could hire them here lol]

    – Alborz
    Apr 16 '16 at 0:46

















(As an aside, I asked a TikZ related question a few days ago with a similar crap MWE; since I don't want to seem like I'm [ab]using the answerers here, is there maybe something I can pay them? Or give them points? I feel bad just asking for someone to help me solve a problem and then just saying thank you; also, I know this should be something asked in the meta board but I included it here in case someone were to bring it up.)

– Alborz
Apr 16 '16 at 0:34





(As an aside, I asked a TikZ related question a few days ago with a similar crap MWE; since I don't want to seem like I'm [ab]using the answerers here, is there maybe something I can pay them? Or give them points? I feel bad just asking for someone to help me solve a problem and then just saying thank you; also, I know this should be something asked in the meta board but I included it here in case someone were to bring it up.)

– Alborz
Apr 16 '16 at 0:34













You can accept the answer to a question which helps you most. You can also vote up any answer which helps you (including the one you accept, if you wish). Also, if you use something in a later question which you learnt from an earlier answer, you can (and should) attribute it to the person who answered. (Within reason, obviously. For significant chunks of code.) Also, people appreciate your including MWEs, especially if they improve as you get more experience ;).

– cfr
Apr 16 '16 at 0:40





You can accept the answer to a question which helps you most. You can also vote up any answer which helps you (including the one you accept, if you wish). Also, if you use something in a later question which you learnt from an earlier answer, you can (and should) attribute it to the person who answered. (Within reason, obviously. For significant chunks of code.) Also, people appreciate your including MWEs, especially if they improve as you get more experience ;).

– cfr
Apr 16 '16 at 0:40













TikZ is really not great for 3D. If you need to draw 3D stuff, you would be well-advised to learn to use one of the tools which is better suited to it. In particular, to use a tool which actually draws in 3D. TikZ can't do this. It draws in 2D. You can fake 3D but it is only fake. There's no 3D object there you can tweak, for example. If the perspective changes, you typically need to redo everything. tikz-3dplot can help in automating some of the calculations needed to fake 3D in TikZ 2D. But it is still fake e.g. you have to draw things in the right order. There's no real depth.

– cfr
Apr 16 '16 at 0:44





TikZ is really not great for 3D. If you need to draw 3D stuff, you would be well-advised to learn to use one of the tools which is better suited to it. In particular, to use a tool which actually draws in 3D. TikZ can't do this. It draws in 2D. You can fake 3D but it is only fake. There's no 3D object there you can tweak, for example. If the perspective changes, you typically need to redo everything. tikz-3dplot can help in automating some of the calculations needed to fake 3D in TikZ 2D. But it is still fake e.g. you have to draw things in the right order. There's no real depth.

– cfr
Apr 16 '16 at 0:44













Oh, and you can obviously hire people to draw things for you. But you can't hire them here ;).

– cfr
Apr 16 '16 at 0:45





Oh, and you can obviously hire people to draw things for you. But you can't hire them here ;).

– cfr
Apr 16 '16 at 0:45













@cfr good point, just added where I based my code from :) also, hmm that's unfortunate then, what tools do you recommend? I've heard of asymptote and PSTricks but that's all I am aware of... [and darn! I wish I could hire them here lol]

– Alborz
Apr 16 '16 at 0:46





@cfr good point, just added where I based my code from :) also, hmm that's unfortunate then, what tools do you recommend? I've heard of asymptote and PSTricks but that's all I am aware of... [and darn! I wish I could hire them here lol]

– Alborz
Apr 16 '16 at 0:46










2 Answers
2






active

oldest

votes


















3














I am uploading the code that done from a friend of mine (@GeorgePapademetriou -not a member, but sure want to share)



documentclass[svgnames,10pt]{standalone}
usepackage[utf8]{inputenc}
usepackage{tikz}
%usepackage{xcolor}
%usepackage{pgfplots}
usetikzlibrary{arrows, 3d, decorations.markings}
usetikzlibrary{calc}
usepgflibrary{shapes.arrows}



begin{document}

%% plane with
begin{tikzpicture} %
defR{1.8} % for phi angle
begin{scope} [x={(0.9cm,-0.15cm)}, y={(0.25cm,0.435cm)}, z={(0cm,0.8cm)}, scale=2.5]
begin{scope} [every path/.style={thin}]
begin{scope} [canvas is xy plane at z=0]
%the plane
draw [fill=green!10] (-2.2,-2)--(-2,2)--(2,2)--(2.2,-2)--cycle;
end{scope}
% x,y,z axis
draw[-latex] (-2.1,0,0) -- (2.5,0,0) node[right]{$x$};
draw[-latex] (0,-2,0) -- (0,2.5,0) node[right]{$y$};
draw[-latex] (0,0,0) -- (0,0,2) node [above]{$z$};
begin{scope}[canvas is xy plane at z=0]
% phi angle and vectors
draw [->, thick, red] (0:R-0.4) arc[start angle=0,delta angle=310,radius=R-0.4] node[below] {$phi_r$};
draw [fill=yellow!20, thick] (0,0)--(0:R-0.8) arc[start angle=0,delta angle=-90, radius=R-0.8]-- cycle;
draw[-latex,black] (0,0)--++(-80:R-0.8);
draw[-latex,black] (0,0)--++(-60:R-0.8);
draw[-latex,black] (0,0)--++(-40:R-0.8);
draw[-latex,black] (0,0)--++(-20:R-0.8);
end{scope}
begin{scope}[canvas is xz plane at y=0]
%theta angle and vectors
draw [fill=blue!10, thick] (0,0)-- (90:R-0.8) arc (90:180:R-0.8)--cycle;
draw [-latex, blue!50!black, thick] (90:R-0.65) arc (90:141:R-0.65) node [midway, above] {$theta_i$};
draw[-latex,black] (0,0)--++(110:R-0.8);
draw[-latex,black] (0,0)--++(130:R-0.8);
draw[-latex,black] (0,0)--++(150:R-0.8);
draw[-latex,black] (0,0)--++(170:R-0.8);
% node and vector to the theta angle
draw[semithick,black,decoration={markings,mark=at position 0.5 with {arrow{latex}}},
postaction=decorate] (0,0)++(141:2.5) node[above,align=center] {Incidence \ direction} --++ (141:-2.5);
end{scope}
% first lobe
draw [fill=blue!5, thick] (0,0,0)--(0,0,1) to [bend left=25] (0.8,0.25, 0.6) to [bend left=20] (2,0.6, 0)
to [bend left=20] (1.5,0.4,0)--cycle;
draw[-latex,black] (0,0)--++(95:1.76);
draw[-latex,black] (0,0)--++(80:1.56);
draw[-latex,black] (0,0)--++(60:1.5);
draw[-latex,black] (0,0)--++(40:1.78);
draw[-latex,black] (0,0)--++(25:1.97);
draw[-latex,black] (0,0)--++(10:1.5);
draw[-latex,black] (0,0)--++(-5:1.5);
begin{scope}[canvas is xz plane at y=0]
%second lobe
draw [fill=blue!18, thick] (0,0)-- (90:R-0.8) arc(90:40:R-0.8) to [bend left] (2.2,0.15) to [bend left] (1.5,0) --cycle;
draw[-latex,black] (0,0)--++(80:R-0.8);
draw[-latex,black] (0,0)--++(60:R-0.8);
draw[-latex,black] (0,0)--++(40:R-0.8);
draw[-latex,black] (0,0)--++(30:1.32);
draw[-latex,black] (0,0)--++(20:1.68);
draw[-latex,black] (0,0)--++(10:2);
draw[-latex,black] (0,0)--++(4:2.2);
end{scope}
%third lobe
draw [fill=blue!25, thick] (0,0,0)--(0,0,1) to [bend left] (0.75,-0.25, 0.6) to [bend left=20] (2.1,-0.6, 0.3)
to [bend left=20] (1.5,-0.5, 0)--cycle;
draw[-latex,black] (0,0)--++(95:1.6);
draw[-latex,black] (0,0)--++(80:1.23);
draw[-latex,black] (0,0)--++(60:0.9);
draw[-latex,black] (0,0)--++(40:1.1);
draw[-latex,black] (0,0)--++(25:1.33);
draw[-latex,black] (0,0)--++(10:1.64);
draw[-latex,black] (0,0)--++(-3:1.95);
%forth lobe
draw [fill=blue!30, thick] (0,0,0)--(0,0,1) to [bend left] (0.65,-0.45, 0.5) to [bend left=20] (1.8,-0.6,0,0.5)
to [bend left=20] (1.2,-0.8,0,0)--cycle;
draw[-latex,black] (0,0)--++(100:1.58);
draw[-latex,black] (0,0)--++(90:1.28);
draw[-latex,black] (0,0)--++(75:0.9);
draw[-latex,black] (0,0)--++(50:0.61);
draw[-latex,black] (0,0)--++(20:0.8);
draw[-latex,black] (0,0)--++(0:1.24);
draw[-latex,black] (0,0)--++(-18:1.85);
draw[-latex,black] (0,0)--++(-28:1.7);
%descriptions
node at (2.4,-2.2,0) {$q(phi_r)=q(phi_r=0)cosphi_r$};
draw[->, blue!50!black] (2.4,-2,0)--(2.2,-0.2,0);
draw[->, blue!50!black] (1.9,-2.1,0)--(1.5,-1,0);
node at (-2.6,0,0.5) {Measuring plane};
draw[->, blue!50!black] (-2.2,0,0.5)--(-.4,-.2,0.4);
node at (-1.6,-1.6,0) {Sample plane};
end{scope}
end{scope}

end{tikzpicture}
%


end{document}


Output:



enter image description here



PS: We have been payed for this graphic, but I suppose that the OP would like to share since he is probably the one that asked and if someone asks for help from a forum we have to believe that he want to help the forum too.
PS2: Ok... I mean this... that is not a forum!






share|improve this answer































    1














    This is similar to koleygr's answer but uses tikz-3dplot to obtain the rotated coordinate systems, and foreach loops to make the code shorter. One reason to post this is that now, i.e. starting from version 3.1 of TikZ, the 3d library treat the xy plane on the same footing as all other planes.



    documentclass[tikz,border=3.14mm]{standalone}
    usepackage{tikz-3dplot}
    usetikzlibrary{3d}
    begin{document}
    tdplotsetmaincoords{70}{20}
    begin{tikzpicture}[tdplot_main_coords,font=sffamily,%
    funky shape/.style={insert path={%
    (0,0) -- (2.5,-1) to[bend right] coordinate[pos=0.5] (#1-1) (3.5,0)
    coordinate (#1-2) to[bend right] coordinate[pos=1/3] (#1-3)
    coordinate[pos=2/3] (#1-4)(1,1) coordinate (#1-5)
    to[bend right] coordinate[pos=0.5] (#1-6) (0,2)}}]
    draw[fill=yellow!70!gray,canvas is xy plane at z=0] (-5,-5) rectangle (5,5);
    node[transform shape,canvas is xy plane at z=0,anchor=south west]
    at (-5,-5) {sample plane};
    draw[-stealth] (-5,0,0) -- (5,0,0) node[pos=1.05]{$x$};
    draw[-stealth] (0,-5,0) -- (0,5,0) node[pos=1.05]{$y$};
    draw[-stealth] (0,0,0) -- (0,0,5) node[pos=1.1]{$z$};
    begin{scope}[canvas is xy plane at z=0]
    draw[fill=yellow!90!gray] (-90:2.5) arc (-90:0:2.5) -- (0,0);
    foreach Z in {-81,-72,...,-9}
    {draw[thick,-latex] (0,0) -- (Z:2.5); }
    draw[-latex] (3.25,0) arc(0:300:3.25) node[below]{$varphi_r$};
    end{scope}
    begin{scope}[canvas is xz plane at y=0]
    draw[fill=blue!20] (90:2.5) arc (90:180:2.5) -- (0,0);
    foreach Z in {105,120,...,165}
    {draw[thick,-latex] (0,0) -- (Z:2.5); }
    draw[thick] (135:6.5) node[above,align=center]{incidence\ direction} -- (135:2.5);
    draw[thick,-latex] (135:6.5) -- (135:4.5);
    node[anchor=south east] at (110:3) {$theta_i$};
    draw[-latex] (90:3) arc(90:135:3);
    end{scope}
    foreach X [count=Y,evaluate=Y as Col using {int(Y*20)}] in {30,0,-20,-40}
    {tdplotsetrotatedcoords{X}{00}{0}
    begin{scope}[tdplot_rotated_coords]
    begin{scope}[canvas is xz plane at y=0]
    draw[fill=blue!Col,funky shape=X-Y];
    foreach Z in {1,...,6}
    {draw[thick,-latex] (0,0) -- (X-Y-Z); }
    end{scope}
    end{scope}}
    node (q) at ([yshift=-2cm]X-2-2) {$q(varphi_r)=q(varphi_r=0)cosvarphi_r$};
    foreach Y in {2,3,4}
    {draw[thick,-latex] (q) -- (X-Y-2);}
    end{tikzpicture}
    end{document}


    enter image description here






    share|improve this answer























      Your Answer








      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "85"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f304539%2f3d-plot-with-reflected-arrows-in-planes-using-tikz%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      3














      I am uploading the code that done from a friend of mine (@GeorgePapademetriou -not a member, but sure want to share)



      documentclass[svgnames,10pt]{standalone}
      usepackage[utf8]{inputenc}
      usepackage{tikz}
      %usepackage{xcolor}
      %usepackage{pgfplots}
      usetikzlibrary{arrows, 3d, decorations.markings}
      usetikzlibrary{calc}
      usepgflibrary{shapes.arrows}



      begin{document}

      %% plane with
      begin{tikzpicture} %
      defR{1.8} % for phi angle
      begin{scope} [x={(0.9cm,-0.15cm)}, y={(0.25cm,0.435cm)}, z={(0cm,0.8cm)}, scale=2.5]
      begin{scope} [every path/.style={thin}]
      begin{scope} [canvas is xy plane at z=0]
      %the plane
      draw [fill=green!10] (-2.2,-2)--(-2,2)--(2,2)--(2.2,-2)--cycle;
      end{scope}
      % x,y,z axis
      draw[-latex] (-2.1,0,0) -- (2.5,0,0) node[right]{$x$};
      draw[-latex] (0,-2,0) -- (0,2.5,0) node[right]{$y$};
      draw[-latex] (0,0,0) -- (0,0,2) node [above]{$z$};
      begin{scope}[canvas is xy plane at z=0]
      % phi angle and vectors
      draw [->, thick, red] (0:R-0.4) arc[start angle=0,delta angle=310,radius=R-0.4] node[below] {$phi_r$};
      draw [fill=yellow!20, thick] (0,0)--(0:R-0.8) arc[start angle=0,delta angle=-90, radius=R-0.8]-- cycle;
      draw[-latex,black] (0,0)--++(-80:R-0.8);
      draw[-latex,black] (0,0)--++(-60:R-0.8);
      draw[-latex,black] (0,0)--++(-40:R-0.8);
      draw[-latex,black] (0,0)--++(-20:R-0.8);
      end{scope}
      begin{scope}[canvas is xz plane at y=0]
      %theta angle and vectors
      draw [fill=blue!10, thick] (0,0)-- (90:R-0.8) arc (90:180:R-0.8)--cycle;
      draw [-latex, blue!50!black, thick] (90:R-0.65) arc (90:141:R-0.65) node [midway, above] {$theta_i$};
      draw[-latex,black] (0,0)--++(110:R-0.8);
      draw[-latex,black] (0,0)--++(130:R-0.8);
      draw[-latex,black] (0,0)--++(150:R-0.8);
      draw[-latex,black] (0,0)--++(170:R-0.8);
      % node and vector to the theta angle
      draw[semithick,black,decoration={markings,mark=at position 0.5 with {arrow{latex}}},
      postaction=decorate] (0,0)++(141:2.5) node[above,align=center] {Incidence \ direction} --++ (141:-2.5);
      end{scope}
      % first lobe
      draw [fill=blue!5, thick] (0,0,0)--(0,0,1) to [bend left=25] (0.8,0.25, 0.6) to [bend left=20] (2,0.6, 0)
      to [bend left=20] (1.5,0.4,0)--cycle;
      draw[-latex,black] (0,0)--++(95:1.76);
      draw[-latex,black] (0,0)--++(80:1.56);
      draw[-latex,black] (0,0)--++(60:1.5);
      draw[-latex,black] (0,0)--++(40:1.78);
      draw[-latex,black] (0,0)--++(25:1.97);
      draw[-latex,black] (0,0)--++(10:1.5);
      draw[-latex,black] (0,0)--++(-5:1.5);
      begin{scope}[canvas is xz plane at y=0]
      %second lobe
      draw [fill=blue!18, thick] (0,0)-- (90:R-0.8) arc(90:40:R-0.8) to [bend left] (2.2,0.15) to [bend left] (1.5,0) --cycle;
      draw[-latex,black] (0,0)--++(80:R-0.8);
      draw[-latex,black] (0,0)--++(60:R-0.8);
      draw[-latex,black] (0,0)--++(40:R-0.8);
      draw[-latex,black] (0,0)--++(30:1.32);
      draw[-latex,black] (0,0)--++(20:1.68);
      draw[-latex,black] (0,0)--++(10:2);
      draw[-latex,black] (0,0)--++(4:2.2);
      end{scope}
      %third lobe
      draw [fill=blue!25, thick] (0,0,0)--(0,0,1) to [bend left] (0.75,-0.25, 0.6) to [bend left=20] (2.1,-0.6, 0.3)
      to [bend left=20] (1.5,-0.5, 0)--cycle;
      draw[-latex,black] (0,0)--++(95:1.6);
      draw[-latex,black] (0,0)--++(80:1.23);
      draw[-latex,black] (0,0)--++(60:0.9);
      draw[-latex,black] (0,0)--++(40:1.1);
      draw[-latex,black] (0,0)--++(25:1.33);
      draw[-latex,black] (0,0)--++(10:1.64);
      draw[-latex,black] (0,0)--++(-3:1.95);
      %forth lobe
      draw [fill=blue!30, thick] (0,0,0)--(0,0,1) to [bend left] (0.65,-0.45, 0.5) to [bend left=20] (1.8,-0.6,0,0.5)
      to [bend left=20] (1.2,-0.8,0,0)--cycle;
      draw[-latex,black] (0,0)--++(100:1.58);
      draw[-latex,black] (0,0)--++(90:1.28);
      draw[-latex,black] (0,0)--++(75:0.9);
      draw[-latex,black] (0,0)--++(50:0.61);
      draw[-latex,black] (0,0)--++(20:0.8);
      draw[-latex,black] (0,0)--++(0:1.24);
      draw[-latex,black] (0,0)--++(-18:1.85);
      draw[-latex,black] (0,0)--++(-28:1.7);
      %descriptions
      node at (2.4,-2.2,0) {$q(phi_r)=q(phi_r=0)cosphi_r$};
      draw[->, blue!50!black] (2.4,-2,0)--(2.2,-0.2,0);
      draw[->, blue!50!black] (1.9,-2.1,0)--(1.5,-1,0);
      node at (-2.6,0,0.5) {Measuring plane};
      draw[->, blue!50!black] (-2.2,0,0.5)--(-.4,-.2,0.4);
      node at (-1.6,-1.6,0) {Sample plane};
      end{scope}
      end{scope}

      end{tikzpicture}
      %


      end{document}


      Output:



      enter image description here



      PS: We have been payed for this graphic, but I suppose that the OP would like to share since he is probably the one that asked and if someone asks for help from a forum we have to believe that he want to help the forum too.
      PS2: Ok... I mean this... that is not a forum!






      share|improve this answer




























        3














        I am uploading the code that done from a friend of mine (@GeorgePapademetriou -not a member, but sure want to share)



        documentclass[svgnames,10pt]{standalone}
        usepackage[utf8]{inputenc}
        usepackage{tikz}
        %usepackage{xcolor}
        %usepackage{pgfplots}
        usetikzlibrary{arrows, 3d, decorations.markings}
        usetikzlibrary{calc}
        usepgflibrary{shapes.arrows}



        begin{document}

        %% plane with
        begin{tikzpicture} %
        defR{1.8} % for phi angle
        begin{scope} [x={(0.9cm,-0.15cm)}, y={(0.25cm,0.435cm)}, z={(0cm,0.8cm)}, scale=2.5]
        begin{scope} [every path/.style={thin}]
        begin{scope} [canvas is xy plane at z=0]
        %the plane
        draw [fill=green!10] (-2.2,-2)--(-2,2)--(2,2)--(2.2,-2)--cycle;
        end{scope}
        % x,y,z axis
        draw[-latex] (-2.1,0,0) -- (2.5,0,0) node[right]{$x$};
        draw[-latex] (0,-2,0) -- (0,2.5,0) node[right]{$y$};
        draw[-latex] (0,0,0) -- (0,0,2) node [above]{$z$};
        begin{scope}[canvas is xy plane at z=0]
        % phi angle and vectors
        draw [->, thick, red] (0:R-0.4) arc[start angle=0,delta angle=310,radius=R-0.4] node[below] {$phi_r$};
        draw [fill=yellow!20, thick] (0,0)--(0:R-0.8) arc[start angle=0,delta angle=-90, radius=R-0.8]-- cycle;
        draw[-latex,black] (0,0)--++(-80:R-0.8);
        draw[-latex,black] (0,0)--++(-60:R-0.8);
        draw[-latex,black] (0,0)--++(-40:R-0.8);
        draw[-latex,black] (0,0)--++(-20:R-0.8);
        end{scope}
        begin{scope}[canvas is xz plane at y=0]
        %theta angle and vectors
        draw [fill=blue!10, thick] (0,0)-- (90:R-0.8) arc (90:180:R-0.8)--cycle;
        draw [-latex, blue!50!black, thick] (90:R-0.65) arc (90:141:R-0.65) node [midway, above] {$theta_i$};
        draw[-latex,black] (0,0)--++(110:R-0.8);
        draw[-latex,black] (0,0)--++(130:R-0.8);
        draw[-latex,black] (0,0)--++(150:R-0.8);
        draw[-latex,black] (0,0)--++(170:R-0.8);
        % node and vector to the theta angle
        draw[semithick,black,decoration={markings,mark=at position 0.5 with {arrow{latex}}},
        postaction=decorate] (0,0)++(141:2.5) node[above,align=center] {Incidence \ direction} --++ (141:-2.5);
        end{scope}
        % first lobe
        draw [fill=blue!5, thick] (0,0,0)--(0,0,1) to [bend left=25] (0.8,0.25, 0.6) to [bend left=20] (2,0.6, 0)
        to [bend left=20] (1.5,0.4,0)--cycle;
        draw[-latex,black] (0,0)--++(95:1.76);
        draw[-latex,black] (0,0)--++(80:1.56);
        draw[-latex,black] (0,0)--++(60:1.5);
        draw[-latex,black] (0,0)--++(40:1.78);
        draw[-latex,black] (0,0)--++(25:1.97);
        draw[-latex,black] (0,0)--++(10:1.5);
        draw[-latex,black] (0,0)--++(-5:1.5);
        begin{scope}[canvas is xz plane at y=0]
        %second lobe
        draw [fill=blue!18, thick] (0,0)-- (90:R-0.8) arc(90:40:R-0.8) to [bend left] (2.2,0.15) to [bend left] (1.5,0) --cycle;
        draw[-latex,black] (0,0)--++(80:R-0.8);
        draw[-latex,black] (0,0)--++(60:R-0.8);
        draw[-latex,black] (0,0)--++(40:R-0.8);
        draw[-latex,black] (0,0)--++(30:1.32);
        draw[-latex,black] (0,0)--++(20:1.68);
        draw[-latex,black] (0,0)--++(10:2);
        draw[-latex,black] (0,0)--++(4:2.2);
        end{scope}
        %third lobe
        draw [fill=blue!25, thick] (0,0,0)--(0,0,1) to [bend left] (0.75,-0.25, 0.6) to [bend left=20] (2.1,-0.6, 0.3)
        to [bend left=20] (1.5,-0.5, 0)--cycle;
        draw[-latex,black] (0,0)--++(95:1.6);
        draw[-latex,black] (0,0)--++(80:1.23);
        draw[-latex,black] (0,0)--++(60:0.9);
        draw[-latex,black] (0,0)--++(40:1.1);
        draw[-latex,black] (0,0)--++(25:1.33);
        draw[-latex,black] (0,0)--++(10:1.64);
        draw[-latex,black] (0,0)--++(-3:1.95);
        %forth lobe
        draw [fill=blue!30, thick] (0,0,0)--(0,0,1) to [bend left] (0.65,-0.45, 0.5) to [bend left=20] (1.8,-0.6,0,0.5)
        to [bend left=20] (1.2,-0.8,0,0)--cycle;
        draw[-latex,black] (0,0)--++(100:1.58);
        draw[-latex,black] (0,0)--++(90:1.28);
        draw[-latex,black] (0,0)--++(75:0.9);
        draw[-latex,black] (0,0)--++(50:0.61);
        draw[-latex,black] (0,0)--++(20:0.8);
        draw[-latex,black] (0,0)--++(0:1.24);
        draw[-latex,black] (0,0)--++(-18:1.85);
        draw[-latex,black] (0,0)--++(-28:1.7);
        %descriptions
        node at (2.4,-2.2,0) {$q(phi_r)=q(phi_r=0)cosphi_r$};
        draw[->, blue!50!black] (2.4,-2,0)--(2.2,-0.2,0);
        draw[->, blue!50!black] (1.9,-2.1,0)--(1.5,-1,0);
        node at (-2.6,0,0.5) {Measuring plane};
        draw[->, blue!50!black] (-2.2,0,0.5)--(-.4,-.2,0.4);
        node at (-1.6,-1.6,0) {Sample plane};
        end{scope}
        end{scope}

        end{tikzpicture}
        %


        end{document}


        Output:



        enter image description here



        PS: We have been payed for this graphic, but I suppose that the OP would like to share since he is probably the one that asked and if someone asks for help from a forum we have to believe that he want to help the forum too.
        PS2: Ok... I mean this... that is not a forum!






        share|improve this answer


























          3












          3








          3







          I am uploading the code that done from a friend of mine (@GeorgePapademetriou -not a member, but sure want to share)



          documentclass[svgnames,10pt]{standalone}
          usepackage[utf8]{inputenc}
          usepackage{tikz}
          %usepackage{xcolor}
          %usepackage{pgfplots}
          usetikzlibrary{arrows, 3d, decorations.markings}
          usetikzlibrary{calc}
          usepgflibrary{shapes.arrows}



          begin{document}

          %% plane with
          begin{tikzpicture} %
          defR{1.8} % for phi angle
          begin{scope} [x={(0.9cm,-0.15cm)}, y={(0.25cm,0.435cm)}, z={(0cm,0.8cm)}, scale=2.5]
          begin{scope} [every path/.style={thin}]
          begin{scope} [canvas is xy plane at z=0]
          %the plane
          draw [fill=green!10] (-2.2,-2)--(-2,2)--(2,2)--(2.2,-2)--cycle;
          end{scope}
          % x,y,z axis
          draw[-latex] (-2.1,0,0) -- (2.5,0,0) node[right]{$x$};
          draw[-latex] (0,-2,0) -- (0,2.5,0) node[right]{$y$};
          draw[-latex] (0,0,0) -- (0,0,2) node [above]{$z$};
          begin{scope}[canvas is xy plane at z=0]
          % phi angle and vectors
          draw [->, thick, red] (0:R-0.4) arc[start angle=0,delta angle=310,radius=R-0.4] node[below] {$phi_r$};
          draw [fill=yellow!20, thick] (0,0)--(0:R-0.8) arc[start angle=0,delta angle=-90, radius=R-0.8]-- cycle;
          draw[-latex,black] (0,0)--++(-80:R-0.8);
          draw[-latex,black] (0,0)--++(-60:R-0.8);
          draw[-latex,black] (0,0)--++(-40:R-0.8);
          draw[-latex,black] (0,0)--++(-20:R-0.8);
          end{scope}
          begin{scope}[canvas is xz plane at y=0]
          %theta angle and vectors
          draw [fill=blue!10, thick] (0,0)-- (90:R-0.8) arc (90:180:R-0.8)--cycle;
          draw [-latex, blue!50!black, thick] (90:R-0.65) arc (90:141:R-0.65) node [midway, above] {$theta_i$};
          draw[-latex,black] (0,0)--++(110:R-0.8);
          draw[-latex,black] (0,0)--++(130:R-0.8);
          draw[-latex,black] (0,0)--++(150:R-0.8);
          draw[-latex,black] (0,0)--++(170:R-0.8);
          % node and vector to the theta angle
          draw[semithick,black,decoration={markings,mark=at position 0.5 with {arrow{latex}}},
          postaction=decorate] (0,0)++(141:2.5) node[above,align=center] {Incidence \ direction} --++ (141:-2.5);
          end{scope}
          % first lobe
          draw [fill=blue!5, thick] (0,0,0)--(0,0,1) to [bend left=25] (0.8,0.25, 0.6) to [bend left=20] (2,0.6, 0)
          to [bend left=20] (1.5,0.4,0)--cycle;
          draw[-latex,black] (0,0)--++(95:1.76);
          draw[-latex,black] (0,0)--++(80:1.56);
          draw[-latex,black] (0,0)--++(60:1.5);
          draw[-latex,black] (0,0)--++(40:1.78);
          draw[-latex,black] (0,0)--++(25:1.97);
          draw[-latex,black] (0,0)--++(10:1.5);
          draw[-latex,black] (0,0)--++(-5:1.5);
          begin{scope}[canvas is xz plane at y=0]
          %second lobe
          draw [fill=blue!18, thick] (0,0)-- (90:R-0.8) arc(90:40:R-0.8) to [bend left] (2.2,0.15) to [bend left] (1.5,0) --cycle;
          draw[-latex,black] (0,0)--++(80:R-0.8);
          draw[-latex,black] (0,0)--++(60:R-0.8);
          draw[-latex,black] (0,0)--++(40:R-0.8);
          draw[-latex,black] (0,0)--++(30:1.32);
          draw[-latex,black] (0,0)--++(20:1.68);
          draw[-latex,black] (0,0)--++(10:2);
          draw[-latex,black] (0,0)--++(4:2.2);
          end{scope}
          %third lobe
          draw [fill=blue!25, thick] (0,0,0)--(0,0,1) to [bend left] (0.75,-0.25, 0.6) to [bend left=20] (2.1,-0.6, 0.3)
          to [bend left=20] (1.5,-0.5, 0)--cycle;
          draw[-latex,black] (0,0)--++(95:1.6);
          draw[-latex,black] (0,0)--++(80:1.23);
          draw[-latex,black] (0,0)--++(60:0.9);
          draw[-latex,black] (0,0)--++(40:1.1);
          draw[-latex,black] (0,0)--++(25:1.33);
          draw[-latex,black] (0,0)--++(10:1.64);
          draw[-latex,black] (0,0)--++(-3:1.95);
          %forth lobe
          draw [fill=blue!30, thick] (0,0,0)--(0,0,1) to [bend left] (0.65,-0.45, 0.5) to [bend left=20] (1.8,-0.6,0,0.5)
          to [bend left=20] (1.2,-0.8,0,0)--cycle;
          draw[-latex,black] (0,0)--++(100:1.58);
          draw[-latex,black] (0,0)--++(90:1.28);
          draw[-latex,black] (0,0)--++(75:0.9);
          draw[-latex,black] (0,0)--++(50:0.61);
          draw[-latex,black] (0,0)--++(20:0.8);
          draw[-latex,black] (0,0)--++(0:1.24);
          draw[-latex,black] (0,0)--++(-18:1.85);
          draw[-latex,black] (0,0)--++(-28:1.7);
          %descriptions
          node at (2.4,-2.2,0) {$q(phi_r)=q(phi_r=0)cosphi_r$};
          draw[->, blue!50!black] (2.4,-2,0)--(2.2,-0.2,0);
          draw[->, blue!50!black] (1.9,-2.1,0)--(1.5,-1,0);
          node at (-2.6,0,0.5) {Measuring plane};
          draw[->, blue!50!black] (-2.2,0,0.5)--(-.4,-.2,0.4);
          node at (-1.6,-1.6,0) {Sample plane};
          end{scope}
          end{scope}

          end{tikzpicture}
          %


          end{document}


          Output:



          enter image description here



          PS: We have been payed for this graphic, but I suppose that the OP would like to share since he is probably the one that asked and if someone asks for help from a forum we have to believe that he want to help the forum too.
          PS2: Ok... I mean this... that is not a forum!






          share|improve this answer













          I am uploading the code that done from a friend of mine (@GeorgePapademetriou -not a member, but sure want to share)



          documentclass[svgnames,10pt]{standalone}
          usepackage[utf8]{inputenc}
          usepackage{tikz}
          %usepackage{xcolor}
          %usepackage{pgfplots}
          usetikzlibrary{arrows, 3d, decorations.markings}
          usetikzlibrary{calc}
          usepgflibrary{shapes.arrows}



          begin{document}

          %% plane with
          begin{tikzpicture} %
          defR{1.8} % for phi angle
          begin{scope} [x={(0.9cm,-0.15cm)}, y={(0.25cm,0.435cm)}, z={(0cm,0.8cm)}, scale=2.5]
          begin{scope} [every path/.style={thin}]
          begin{scope} [canvas is xy plane at z=0]
          %the plane
          draw [fill=green!10] (-2.2,-2)--(-2,2)--(2,2)--(2.2,-2)--cycle;
          end{scope}
          % x,y,z axis
          draw[-latex] (-2.1,0,0) -- (2.5,0,0) node[right]{$x$};
          draw[-latex] (0,-2,0) -- (0,2.5,0) node[right]{$y$};
          draw[-latex] (0,0,0) -- (0,0,2) node [above]{$z$};
          begin{scope}[canvas is xy plane at z=0]
          % phi angle and vectors
          draw [->, thick, red] (0:R-0.4) arc[start angle=0,delta angle=310,radius=R-0.4] node[below] {$phi_r$};
          draw [fill=yellow!20, thick] (0,0)--(0:R-0.8) arc[start angle=0,delta angle=-90, radius=R-0.8]-- cycle;
          draw[-latex,black] (0,0)--++(-80:R-0.8);
          draw[-latex,black] (0,0)--++(-60:R-0.8);
          draw[-latex,black] (0,0)--++(-40:R-0.8);
          draw[-latex,black] (0,0)--++(-20:R-0.8);
          end{scope}
          begin{scope}[canvas is xz plane at y=0]
          %theta angle and vectors
          draw [fill=blue!10, thick] (0,0)-- (90:R-0.8) arc (90:180:R-0.8)--cycle;
          draw [-latex, blue!50!black, thick] (90:R-0.65) arc (90:141:R-0.65) node [midway, above] {$theta_i$};
          draw[-latex,black] (0,0)--++(110:R-0.8);
          draw[-latex,black] (0,0)--++(130:R-0.8);
          draw[-latex,black] (0,0)--++(150:R-0.8);
          draw[-latex,black] (0,0)--++(170:R-0.8);
          % node and vector to the theta angle
          draw[semithick,black,decoration={markings,mark=at position 0.5 with {arrow{latex}}},
          postaction=decorate] (0,0)++(141:2.5) node[above,align=center] {Incidence \ direction} --++ (141:-2.5);
          end{scope}
          % first lobe
          draw [fill=blue!5, thick] (0,0,0)--(0,0,1) to [bend left=25] (0.8,0.25, 0.6) to [bend left=20] (2,0.6, 0)
          to [bend left=20] (1.5,0.4,0)--cycle;
          draw[-latex,black] (0,0)--++(95:1.76);
          draw[-latex,black] (0,0)--++(80:1.56);
          draw[-latex,black] (0,0)--++(60:1.5);
          draw[-latex,black] (0,0)--++(40:1.78);
          draw[-latex,black] (0,0)--++(25:1.97);
          draw[-latex,black] (0,0)--++(10:1.5);
          draw[-latex,black] (0,0)--++(-5:1.5);
          begin{scope}[canvas is xz plane at y=0]
          %second lobe
          draw [fill=blue!18, thick] (0,0)-- (90:R-0.8) arc(90:40:R-0.8) to [bend left] (2.2,0.15) to [bend left] (1.5,0) --cycle;
          draw[-latex,black] (0,0)--++(80:R-0.8);
          draw[-latex,black] (0,0)--++(60:R-0.8);
          draw[-latex,black] (0,0)--++(40:R-0.8);
          draw[-latex,black] (0,0)--++(30:1.32);
          draw[-latex,black] (0,0)--++(20:1.68);
          draw[-latex,black] (0,0)--++(10:2);
          draw[-latex,black] (0,0)--++(4:2.2);
          end{scope}
          %third lobe
          draw [fill=blue!25, thick] (0,0,0)--(0,0,1) to [bend left] (0.75,-0.25, 0.6) to [bend left=20] (2.1,-0.6, 0.3)
          to [bend left=20] (1.5,-0.5, 0)--cycle;
          draw[-latex,black] (0,0)--++(95:1.6);
          draw[-latex,black] (0,0)--++(80:1.23);
          draw[-latex,black] (0,0)--++(60:0.9);
          draw[-latex,black] (0,0)--++(40:1.1);
          draw[-latex,black] (0,0)--++(25:1.33);
          draw[-latex,black] (0,0)--++(10:1.64);
          draw[-latex,black] (0,0)--++(-3:1.95);
          %forth lobe
          draw [fill=blue!30, thick] (0,0,0)--(0,0,1) to [bend left] (0.65,-0.45, 0.5) to [bend left=20] (1.8,-0.6,0,0.5)
          to [bend left=20] (1.2,-0.8,0,0)--cycle;
          draw[-latex,black] (0,0)--++(100:1.58);
          draw[-latex,black] (0,0)--++(90:1.28);
          draw[-latex,black] (0,0)--++(75:0.9);
          draw[-latex,black] (0,0)--++(50:0.61);
          draw[-latex,black] (0,0)--++(20:0.8);
          draw[-latex,black] (0,0)--++(0:1.24);
          draw[-latex,black] (0,0)--++(-18:1.85);
          draw[-latex,black] (0,0)--++(-28:1.7);
          %descriptions
          node at (2.4,-2.2,0) {$q(phi_r)=q(phi_r=0)cosphi_r$};
          draw[->, blue!50!black] (2.4,-2,0)--(2.2,-0.2,0);
          draw[->, blue!50!black] (1.9,-2.1,0)--(1.5,-1,0);
          node at (-2.6,0,0.5) {Measuring plane};
          draw[->, blue!50!black] (-2.2,0,0.5)--(-.4,-.2,0.4);
          node at (-1.6,-1.6,0) {Sample plane};
          end{scope}
          end{scope}

          end{tikzpicture}
          %


          end{document}


          Output:



          enter image description here



          PS: We have been payed for this graphic, but I suppose that the OP would like to share since he is probably the one that asked and if someone asks for help from a forum we have to believe that he want to help the forum too.
          PS2: Ok... I mean this... that is not a forum!







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Sep 15 '18 at 23:05









          koleygrkoleygr

          11.2k11038




          11.2k11038























              1














              This is similar to koleygr's answer but uses tikz-3dplot to obtain the rotated coordinate systems, and foreach loops to make the code shorter. One reason to post this is that now, i.e. starting from version 3.1 of TikZ, the 3d library treat the xy plane on the same footing as all other planes.



              documentclass[tikz,border=3.14mm]{standalone}
              usepackage{tikz-3dplot}
              usetikzlibrary{3d}
              begin{document}
              tdplotsetmaincoords{70}{20}
              begin{tikzpicture}[tdplot_main_coords,font=sffamily,%
              funky shape/.style={insert path={%
              (0,0) -- (2.5,-1) to[bend right] coordinate[pos=0.5] (#1-1) (3.5,0)
              coordinate (#1-2) to[bend right] coordinate[pos=1/3] (#1-3)
              coordinate[pos=2/3] (#1-4)(1,1) coordinate (#1-5)
              to[bend right] coordinate[pos=0.5] (#1-6) (0,2)}}]
              draw[fill=yellow!70!gray,canvas is xy plane at z=0] (-5,-5) rectangle (5,5);
              node[transform shape,canvas is xy plane at z=0,anchor=south west]
              at (-5,-5) {sample plane};
              draw[-stealth] (-5,0,0) -- (5,0,0) node[pos=1.05]{$x$};
              draw[-stealth] (0,-5,0) -- (0,5,0) node[pos=1.05]{$y$};
              draw[-stealth] (0,0,0) -- (0,0,5) node[pos=1.1]{$z$};
              begin{scope}[canvas is xy plane at z=0]
              draw[fill=yellow!90!gray] (-90:2.5) arc (-90:0:2.5) -- (0,0);
              foreach Z in {-81,-72,...,-9}
              {draw[thick,-latex] (0,0) -- (Z:2.5); }
              draw[-latex] (3.25,0) arc(0:300:3.25) node[below]{$varphi_r$};
              end{scope}
              begin{scope}[canvas is xz plane at y=0]
              draw[fill=blue!20] (90:2.5) arc (90:180:2.5) -- (0,0);
              foreach Z in {105,120,...,165}
              {draw[thick,-latex] (0,0) -- (Z:2.5); }
              draw[thick] (135:6.5) node[above,align=center]{incidence\ direction} -- (135:2.5);
              draw[thick,-latex] (135:6.5) -- (135:4.5);
              node[anchor=south east] at (110:3) {$theta_i$};
              draw[-latex] (90:3) arc(90:135:3);
              end{scope}
              foreach X [count=Y,evaluate=Y as Col using {int(Y*20)}] in {30,0,-20,-40}
              {tdplotsetrotatedcoords{X}{00}{0}
              begin{scope}[tdplot_rotated_coords]
              begin{scope}[canvas is xz plane at y=0]
              draw[fill=blue!Col,funky shape=X-Y];
              foreach Z in {1,...,6}
              {draw[thick,-latex] (0,0) -- (X-Y-Z); }
              end{scope}
              end{scope}}
              node (q) at ([yshift=-2cm]X-2-2) {$q(varphi_r)=q(varphi_r=0)cosvarphi_r$};
              foreach Y in {2,3,4}
              {draw[thick,-latex] (q) -- (X-Y-2);}
              end{tikzpicture}
              end{document}


              enter image description here






              share|improve this answer




























                1














                This is similar to koleygr's answer but uses tikz-3dplot to obtain the rotated coordinate systems, and foreach loops to make the code shorter. One reason to post this is that now, i.e. starting from version 3.1 of TikZ, the 3d library treat the xy plane on the same footing as all other planes.



                documentclass[tikz,border=3.14mm]{standalone}
                usepackage{tikz-3dplot}
                usetikzlibrary{3d}
                begin{document}
                tdplotsetmaincoords{70}{20}
                begin{tikzpicture}[tdplot_main_coords,font=sffamily,%
                funky shape/.style={insert path={%
                (0,0) -- (2.5,-1) to[bend right] coordinate[pos=0.5] (#1-1) (3.5,0)
                coordinate (#1-2) to[bend right] coordinate[pos=1/3] (#1-3)
                coordinate[pos=2/3] (#1-4)(1,1) coordinate (#1-5)
                to[bend right] coordinate[pos=0.5] (#1-6) (0,2)}}]
                draw[fill=yellow!70!gray,canvas is xy plane at z=0] (-5,-5) rectangle (5,5);
                node[transform shape,canvas is xy plane at z=0,anchor=south west]
                at (-5,-5) {sample plane};
                draw[-stealth] (-5,0,0) -- (5,0,0) node[pos=1.05]{$x$};
                draw[-stealth] (0,-5,0) -- (0,5,0) node[pos=1.05]{$y$};
                draw[-stealth] (0,0,0) -- (0,0,5) node[pos=1.1]{$z$};
                begin{scope}[canvas is xy plane at z=0]
                draw[fill=yellow!90!gray] (-90:2.5) arc (-90:0:2.5) -- (0,0);
                foreach Z in {-81,-72,...,-9}
                {draw[thick,-latex] (0,0) -- (Z:2.5); }
                draw[-latex] (3.25,0) arc(0:300:3.25) node[below]{$varphi_r$};
                end{scope}
                begin{scope}[canvas is xz plane at y=0]
                draw[fill=blue!20] (90:2.5) arc (90:180:2.5) -- (0,0);
                foreach Z in {105,120,...,165}
                {draw[thick,-latex] (0,0) -- (Z:2.5); }
                draw[thick] (135:6.5) node[above,align=center]{incidence\ direction} -- (135:2.5);
                draw[thick,-latex] (135:6.5) -- (135:4.5);
                node[anchor=south east] at (110:3) {$theta_i$};
                draw[-latex] (90:3) arc(90:135:3);
                end{scope}
                foreach X [count=Y,evaluate=Y as Col using {int(Y*20)}] in {30,0,-20,-40}
                {tdplotsetrotatedcoords{X}{00}{0}
                begin{scope}[tdplot_rotated_coords]
                begin{scope}[canvas is xz plane at y=0]
                draw[fill=blue!Col,funky shape=X-Y];
                foreach Z in {1,...,6}
                {draw[thick,-latex] (0,0) -- (X-Y-Z); }
                end{scope}
                end{scope}}
                node (q) at ([yshift=-2cm]X-2-2) {$q(varphi_r)=q(varphi_r=0)cosvarphi_r$};
                foreach Y in {2,3,4}
                {draw[thick,-latex] (q) -- (X-Y-2);}
                end{tikzpicture}
                end{document}


                enter image description here






                share|improve this answer


























                  1












                  1








                  1







                  This is similar to koleygr's answer but uses tikz-3dplot to obtain the rotated coordinate systems, and foreach loops to make the code shorter. One reason to post this is that now, i.e. starting from version 3.1 of TikZ, the 3d library treat the xy plane on the same footing as all other planes.



                  documentclass[tikz,border=3.14mm]{standalone}
                  usepackage{tikz-3dplot}
                  usetikzlibrary{3d}
                  begin{document}
                  tdplotsetmaincoords{70}{20}
                  begin{tikzpicture}[tdplot_main_coords,font=sffamily,%
                  funky shape/.style={insert path={%
                  (0,0) -- (2.5,-1) to[bend right] coordinate[pos=0.5] (#1-1) (3.5,0)
                  coordinate (#1-2) to[bend right] coordinate[pos=1/3] (#1-3)
                  coordinate[pos=2/3] (#1-4)(1,1) coordinate (#1-5)
                  to[bend right] coordinate[pos=0.5] (#1-6) (0,2)}}]
                  draw[fill=yellow!70!gray,canvas is xy plane at z=0] (-5,-5) rectangle (5,5);
                  node[transform shape,canvas is xy plane at z=0,anchor=south west]
                  at (-5,-5) {sample plane};
                  draw[-stealth] (-5,0,0) -- (5,0,0) node[pos=1.05]{$x$};
                  draw[-stealth] (0,-5,0) -- (0,5,0) node[pos=1.05]{$y$};
                  draw[-stealth] (0,0,0) -- (0,0,5) node[pos=1.1]{$z$};
                  begin{scope}[canvas is xy plane at z=0]
                  draw[fill=yellow!90!gray] (-90:2.5) arc (-90:0:2.5) -- (0,0);
                  foreach Z in {-81,-72,...,-9}
                  {draw[thick,-latex] (0,0) -- (Z:2.5); }
                  draw[-latex] (3.25,0) arc(0:300:3.25) node[below]{$varphi_r$};
                  end{scope}
                  begin{scope}[canvas is xz plane at y=0]
                  draw[fill=blue!20] (90:2.5) arc (90:180:2.5) -- (0,0);
                  foreach Z in {105,120,...,165}
                  {draw[thick,-latex] (0,0) -- (Z:2.5); }
                  draw[thick] (135:6.5) node[above,align=center]{incidence\ direction} -- (135:2.5);
                  draw[thick,-latex] (135:6.5) -- (135:4.5);
                  node[anchor=south east] at (110:3) {$theta_i$};
                  draw[-latex] (90:3) arc(90:135:3);
                  end{scope}
                  foreach X [count=Y,evaluate=Y as Col using {int(Y*20)}] in {30,0,-20,-40}
                  {tdplotsetrotatedcoords{X}{00}{0}
                  begin{scope}[tdplot_rotated_coords]
                  begin{scope}[canvas is xz plane at y=0]
                  draw[fill=blue!Col,funky shape=X-Y];
                  foreach Z in {1,...,6}
                  {draw[thick,-latex] (0,0) -- (X-Y-Z); }
                  end{scope}
                  end{scope}}
                  node (q) at ([yshift=-2cm]X-2-2) {$q(varphi_r)=q(varphi_r=0)cosvarphi_r$};
                  foreach Y in {2,3,4}
                  {draw[thick,-latex] (q) -- (X-Y-2);}
                  end{tikzpicture}
                  end{document}


                  enter image description here






                  share|improve this answer













                  This is similar to koleygr's answer but uses tikz-3dplot to obtain the rotated coordinate systems, and foreach loops to make the code shorter. One reason to post this is that now, i.e. starting from version 3.1 of TikZ, the 3d library treat the xy plane on the same footing as all other planes.



                  documentclass[tikz,border=3.14mm]{standalone}
                  usepackage{tikz-3dplot}
                  usetikzlibrary{3d}
                  begin{document}
                  tdplotsetmaincoords{70}{20}
                  begin{tikzpicture}[tdplot_main_coords,font=sffamily,%
                  funky shape/.style={insert path={%
                  (0,0) -- (2.5,-1) to[bend right] coordinate[pos=0.5] (#1-1) (3.5,0)
                  coordinate (#1-2) to[bend right] coordinate[pos=1/3] (#1-3)
                  coordinate[pos=2/3] (#1-4)(1,1) coordinate (#1-5)
                  to[bend right] coordinate[pos=0.5] (#1-6) (0,2)}}]
                  draw[fill=yellow!70!gray,canvas is xy plane at z=0] (-5,-5) rectangle (5,5);
                  node[transform shape,canvas is xy plane at z=0,anchor=south west]
                  at (-5,-5) {sample plane};
                  draw[-stealth] (-5,0,0) -- (5,0,0) node[pos=1.05]{$x$};
                  draw[-stealth] (0,-5,0) -- (0,5,0) node[pos=1.05]{$y$};
                  draw[-stealth] (0,0,0) -- (0,0,5) node[pos=1.1]{$z$};
                  begin{scope}[canvas is xy plane at z=0]
                  draw[fill=yellow!90!gray] (-90:2.5) arc (-90:0:2.5) -- (0,0);
                  foreach Z in {-81,-72,...,-9}
                  {draw[thick,-latex] (0,0) -- (Z:2.5); }
                  draw[-latex] (3.25,0) arc(0:300:3.25) node[below]{$varphi_r$};
                  end{scope}
                  begin{scope}[canvas is xz plane at y=0]
                  draw[fill=blue!20] (90:2.5) arc (90:180:2.5) -- (0,0);
                  foreach Z in {105,120,...,165}
                  {draw[thick,-latex] (0,0) -- (Z:2.5); }
                  draw[thick] (135:6.5) node[above,align=center]{incidence\ direction} -- (135:2.5);
                  draw[thick,-latex] (135:6.5) -- (135:4.5);
                  node[anchor=south east] at (110:3) {$theta_i$};
                  draw[-latex] (90:3) arc(90:135:3);
                  end{scope}
                  foreach X [count=Y,evaluate=Y as Col using {int(Y*20)}] in {30,0,-20,-40}
                  {tdplotsetrotatedcoords{X}{00}{0}
                  begin{scope}[tdplot_rotated_coords]
                  begin{scope}[canvas is xz plane at y=0]
                  draw[fill=blue!Col,funky shape=X-Y];
                  foreach Z in {1,...,6}
                  {draw[thick,-latex] (0,0) -- (X-Y-Z); }
                  end{scope}
                  end{scope}}
                  node (q) at ([yshift=-2cm]X-2-2) {$q(varphi_r)=q(varphi_r=0)cosvarphi_r$};
                  foreach Y in {2,3,4}
                  {draw[thick,-latex] (q) -- (X-Y-2);}
                  end{tikzpicture}
                  end{document}


                  enter image description here







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Jan 14 at 4:24









                  marmotmarmot

                  93.3k4109204




                  93.3k4109204






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f304539%2f3d-plot-with-reflected-arrows-in-planes-using-tikz%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      How to change which sound is reproduced for terminal bell?

                      Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

                      Can I use Tabulator js library in my java Spring + Thymeleaf project?