5

I want to make some simple 3D drawings, most of them in Cavalière perspective.

I also want to see the difference between visible lines and the non-visible lines.

The code I've made is:

\documentclass{article}
\usepackage{tikz}

\usepackage{tkz-euclide}
\usetikzlibrary{calc, shadings, arrows.meta}
\usepackage{tkz-euclide}
\usetkzobj{all} 

\usepackage{pgfplots}
\pgfplotsset{compat=newest}


\begin{document}

\begin{center}
\begin{tikzpicture}[scale=1]
\tkzInit[ymin=-1,ymax=7.5,xmin=1,xmax=10]
\tkzClip
\tkzDefPoints{2/0/A, 7/0/B, 7/5/C, 2/5/D}
\tkzDefShiftPoint[A](30:2.5){E};
\tkzDefShiftPoint[B](30:2.5){F};
\tkzDefShiftPoint[C](30:2.5){G};
\tkzDefShiftPoint[D](30:2.5){H};

\tkzDrawSegments(A,B B,C C,D D,A F,G G,H B,F D,H C,G);
\tkzDrawSegments[thick](C,E);
\tkzDrawSegments[dashed](A,E E,F E,H);
\tkzDrawPolygon[fill=red!50, opacity=.4](A,F,H);
%\tkzDrawPoints(A,B,C,D,E,F,G,H);
\tkzLabelPoints[above](C,D,G,H);
\tkzLabelPoints[below](A,B,E,F);
\end{tikzpicture}
\end{center}



\begin{center}
\begin{tikzpicture}[scale=1]
\tkzInit[ymin=-1,ymax=7.5,xmin=1,xmax=10]
\tkzDefPoints{2/0/A, 8/0/B, 10/3/C, 4/3/D}
\tkzDefShiftPoint[A](90:1.3){E};
\tkzDefShiftPoint[B](90:1.3){F};
\tkzDefShiftPoint[C](90:1.3){G};
\tkzDefShiftPoint[D](95:1.3){H};

\tkzInterLL(E,F)(A,D)  \tkzGetPoint{I};
\tkzInterLL(G,F)(C,D)  \tkzGetPoint{J};
\tkzDrawPolygon(A,B,C,D);
\tkzDrawPolygon(E,F,G,H);
\tkzDrawSegments[dashed,white](I,D D,J);
\tkzLabelPoints[above](C,D,G,H);
\tkzLabelPoints[below](A,B,E,F);
\end{tikzpicture}
\end{center}
\end{document} 

Generating this:

enter image description here

My questions:

1) Is there a package that can make these drawings?

2) If not, is there another way to make the "invisible" lines in the second drawing, because looking close, you will see there are some minor black lines.

I know I could write this, but I have a feeling it is not a very 'LaTeX' way...

\tkzDrawSegments[white,thick](I,D D,J);
\tkzDrawSegments[dashed](I,D D,J);

enter image description here

1 Answer 1

3

For your first question tikz is the best tool that I know of (or tkz-euclide too). Perhaps somebody else knows of something better.

For the other question. I suggest that you avoid drawing dashed white lines over the black lines. Draw only the black dashed lines. Something like this:

\documentclass{standalone}
\usepackage{tikz}
\usepackage{tkz-euclide}

\begin{document}
\begin{tikzpicture}[line cap=round, line join=round]
\tkzDefPoints{2/0/A, 8/0/B, 10/3/C, 4/3/D}
\tkzDefShiftPoint[A](90:1.3){E};
\tkzDefShiftPoint[B](90:1.3){F};
\tkzDefShiftPoint[C](90:1.3){G};
\tkzDefShiftPoint[D](90:1.3){H};

\tkzInterLL(E,F)(A,D)  \tkzGetPoint{I};
\tkzInterLL(G,F)(C,D)  \tkzGetPoint{J};
\tkzDrawSegments(I,A A,B B,C C,J);
\tkzDrawPolygon(E,F,G,H);
\tkzDrawSegments[dashed](I,D D,J);
\tkzLabelPoints[above](C,D,G,H);
\tkzLabelPoints[below](A,B,E,F);
\end{tikzpicture}
\end{document}

You should get the following plot. enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .