TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to draw the following picture by using TIKZ: Projection of R onto xy-plane

But I do not know how to hatch the projection, that is the two-dimensional domain: ${(x,y,z} \mid z=0, x^2+y^2\leq 4}.$ And I do not know how to draw it fairly precisionly? Can anyone help me? I've draw it by Geogebra, and then convert it into tikz file. But when I compile it by PDFlatex, I could not get the desired result! I do not why it is like this: geogebra-convert-tikz Maybe someone can tell me why?

According to Lionel MANSUY's sugestion, I construct it as follows:

    %compile it by pdflatex

\draw[very thin,gray,opacity=.3](-3,-3)grid (4,4);

\draw[pattern=north east lines,name path=bottom](0,0) ellipse (2 and .6); %draw the projection onto xy-plane, then hatch it by north east lines

\draw[fill=white,name path=ellipse](0,2) ellipse (2 and .5);%draw top disc

\draw[name path=line,dotted,thick,green](-2,2)--(2,2);

\fill[red,opacity=.5,name intersections={of=ellipse and line}]
(intersection-1) circle(1pt)node{.}
\filldraw[fill=white,name path=lateral](intersection-2)..controls (-1,0) and (-1/2,0)..(0,0)..controls(1/2,0) and (1,0)..(intersection-1);
\draw[fill=white](0,2) ellipse (2 and .5);
\fill[blue,opacity=.5,name intersections={name=intersection-second,of=lateral and bottom}](intersection-second-1)circle(1pt)node{.} (intersection-second-2)circle(1pt)node{.};
\draw (intersection-second-1)node[left]{$A$}; 
\path[name path=yy](0,0)--(-3,-3);
\draw[->,name intersections={name=intersection-third,of=bottom and yy}](intersection-third-1)node[anchor=north west]{$C$}--(-2,-2)node[right]{$x$};
\path[name path=zz](0,1/2)--(0,3);
\draw[name intersections={name=yz,of=zz and ellipse}](yz-2)--(0,2);
\path[name path=lineup](0,2)--+(45:3);
\path[name path=linedown](0,2)--+(45:-1);
\draw[dotted,thick,name intersections={name=up,of=lineup and ellipse},name intersections={name=down,of=linedown and ellipse}](up-1)--(down-1);
\draw(0,2)node[red,above left]{\tiny$(0,2)$};
\draw[->](1,1)--(1.8,1)node[right]{$\displaystyle z=\frac{x^2+y^2}{2}$};


And the result picture is here: my-result

Can we draw this picture fairly precisionly by using tikz?

share|improve this question
I don't know if it will help but can you post the code that Geogebra exported? – hpesoj626 Dec 13 '12 at 7:29
Just out of curiosity, just what are the points A and B there for? Does the reflector intersect the ellipse at A and B? Seems like the case in your code. It looks to me also like the reflector has a flat vertex. :) – hpesoj626 Dec 13 '12 at 8:11
Good job :-) What do you mean by "fairly precisionly" ? – Lionel MANSUY Dec 13 '12 at 8:12
For the lateral surface, I personally would use something like this: \fill[white] (-2,2) parabola[parabola height=-2cm] (2,2) --cycle; \draw (-2,2) parabola[parabola height=-2cm] (2,2); – Lionel MANSUY Dec 13 '12 at 8:25
You could also have a look at the pgfplots package, that can also be used to draw 3D plots – Lionel MANSUY Dec 13 '12 at 8:27
up vote 8 down vote accepted

You could arrange the order of your drawings:

  1. Draw your hatched surface as an ellipse (circle with a x- and a y-radius)
  2. Draw the parabolic curve (filled with white)
  3. Draw the top area (filled with white)
  4. Draw your axis

Edit: I'm not sure, but I think that the major axis of the ellipse should not be horizontal, but be slightly inclined

Edit2: you should forget Geogebra code and draw your sketch directly with Tikz; you only have simple structure: lines, ellipse and parabol

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.