PSTricks 3D-рисование — настройка параметров

PSTricks 3D-рисование — настройка параметров

Рассмотрим следующий код:

\documentclass{article}

\usepackage{pst-solides3d}

\begin{document}

\psset{viewpoint = 15 -30 11, Decran = 10}
\begin{pspicture}[solidmemory](-8.25,-1)(5.3,2.05)
  \psSolid[object = point, args = 15.5 3 7.3, name = L]
  \psSolid[object = point, args = -55 2 3.5,  name = R]
  \psSolid[object = line, linecolor = red!50, linestyle = dashed, linewidth = 2pt, args = R L]
  \psSolid[object = parallelepiped, a = 6.0, b = 6.0, c = 6.5, RotZ = -15, fillcolor = blue!50, name = parallelepipedum, action = draw*](0 0 1.5)
  \multido{\iA = 0+1}{8}{%
    \psSolid[object = point, linecolor = black, definition = solidgetsommet, args = parallelepipedum \iA, name = C\iA]
   \psset{object = line, linecolor = darkgray!50, linestyle = dotted}
    \psSolid[args = L C\iA]
    \psSolid[args = R C\iA]
  }
  \psSolid[object = parallelepiped, a = 6.0, b = 6.0, c = 6.5, RotZ = -15, name = parallelipipidum, action = draw](0 0 1.5)
  \multido{\iB = 0+1}{4}{%
    \psSolid[object = point, definition = solidgetsommet, args = parallelipipidum \iB, name = Top\iB, action = none]
  }
  \psSolid[object = line, args = Top0 Top2]
  \psSolid[object = line, args = Top1 Top3]
  \psSolid[object = point, definition = solidcentreface, args = parallelipipidum 0]
\end{pspicture}

\end{document}

выход

Может ли кто-нибудь помочь мне настроить параметры так, чтобы каждая пара пунктирных серых линий идеально лежала друг на друге?

Я долго пытался, но я в неведении.:(

Я должен отметить, что рассматриваемыми параметрами являются args = 15.5 3 7.3, args = -55 2 3.5, и a = 6.0, b = 6.0, c = 6.5, RotZ = -15. (Значения a, b, c, и RotZдолжны быть одинаковыми для двух объектов.)

решение1

  1. Точки схода для линий, параллельных земле, находятся на уровне глаз, поэтому положение zобъектов pointдолжно быть равно zзначению viewpoint.
  2. Точки схода для линий, направленных под горизонтальным углом , thetaлежат в точках x=tan(theta)*yv + xv, где yvи xvявляются компонентами xи .yviewpoint
  3. Точки схода лежат на линии горизонта, которая находится на y=0.

Итак, для точки обзора 15 -30 11и вращения прямоугольного параллелепипеда -15 degreesточки схода лежат в точках 23.04 0 11и -96.96 0 11:

\documentclass{article}

\usepackage{pst-solides3d}

\begin{document}

\psset{viewpoint = 15 -30 11, Decran = 6}
\begin{pspicture}[solidmemory](-8.25,-1)(5.3,2.05)
  \psSolid[object = point, args = 23.04 0 11, name = L]
  \psSolid[object = point, args = -96.96 0 11,  name = R]
  \psSolid[object = line, linecolor = red!50, linestyle = dashed, linewidth = 2pt, args = R L]
  \psSolid[object = parallelepiped, a = 8.0, b = 8.0, c = 8.5, RotZ = -15, fillcolor = blue!50, name = parallelepipedum, action = draw*](0 0 1.5)
  \multido{\iA = 0+1}{8}{%
    \psSolid[object = point, linecolor = black, definition = solidgetsommet, args = parallelepipedum \iA, name = C\iA]
   \psset{object = line, linecolor = darkgray!50, linestyle = dotted}
    \psSolid[args = L C\iA]
    \psSolid[args = R C\iA]
  }
  \psSolid[object = parallelepiped, a = 8.0, b = 8.0, c = 8.5, RotZ = -15, name = parallelipipidum, action = draw](0 0 1.5)
  \multido{\iB = 0+1}{4}{%
    \psSolid[object = point, definition = solidgetsommet, args = parallelipipidum \iB, name = Top\iB, action = none]
  }
  \psSolid[object = line, args = Top0 Top2]
  \psSolid[object = line, args = Top1 Top3]
  \psSolid[object = point, definition = solidcentreface, args = parallelipipidum 0]
\end{pspicture}

\end{document}

Связанный контент