각각 고정된 길이의 평행선을 그립니다.

각각 고정된 길이의 평행선을 그립니다.

에서 평행선을 만들려고 합니다 tikz. 그 선을 만들 수는 있지만 그 선의 길이를 제어할 수는 없는 것 같습니다. 빨간색 상자의 면에서 멈추기를 원합니다.

내 코드는

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
    \begin{tikzpicture}[scale=0.5]
      %target
      \draw[fill=gray!30,gray!30] (0,3)rectangle(2,-3);
      %tracks
      \draw[->,thick] (-2,2)--(0,2);
      \draw[->,dashed] (0,2)--(-3,-3);
      \draw[->,thick] (-2,1)--(2,1);
      \draw[->,dashed] (2,1)-- +($(-3,-3)-(0,2)$);
      \draw[->,thick] (-2,-1)--(2,-1);
      \draw[->,dashed] (2,-1)-- +($(-3,-3)-(0,2)$);
      \draw[->,thick] (-2,-2)--(0,-2);
      \draw[->,dashed] (0,-2)-- +($(-3,-3)-(0,2)$);
      %detector
      \draw[red, rotate around={60:(-1,-3)}] (-3,0) rectangle (-2,-6);
   \end{tikzpicture}
\end{document}

내 출력은

여기에 이미지 설명을 입력하세요

평행선의 길이와 끝점을 제어하는 ​​방법에 대한 아이디어가 있습니까?

답변1

평행선이 "검출기"와 직교한다고 가정하면 아래 파란색으로 그려진 투영 수정자를 사용할 수 있습니다(매뉴얼의 "투영 수정자의 구문" 참조). 비교를 위해 원래 점선을 그대로 두었습니다.

\documentclass[tikz,border=5]{standalone}
\usetikzlibrary{calc}
\begin{document}
    \begin{tikzpicture}[scale=0.5]
      %target
      \draw[fill=gray!30,gray!30] (0,3) rectangle(2,-3);
      %detector 
      \draw[red, rotate around={60:(-1,-3)}] 
        (-3,0) rectangle (-2,-6)
        (-2,0) coordinate (a) 
        (-2,-6) coordinate (b); 
      %tracks
      \draw[->,thick] (-2,2)--(0,2);
      \draw[->,dashed] (0,2)--(-3,-3);
      \draw[->,thick] (-2,1)--(2,1);
      \draw[->,dashed] (2,1)-- +($(-3,-3)-(0,2)$);
      \draw[->,thick] (-2,-1)--(2,-1);
      \draw[->,dashed] (2,-1)-- +($(-3,-3)-(0,2)$);
      \draw[->,thick] (-2,-2)--(0,-2);
      \draw[->,dashed] (0,-2)-- +($(-3,-3)-(0,2)$);

      \draw [blue, solid, ->] (0,2) -- ($(a)!(0,2)!(b)$);
      \draw [blue, solid, ->] (2,1) -- ($(a)!(2,1)!(b)$);
      \draw [blue, solid, ->] (2,-1) -- ($(a)!(2,-1)!(b)$);
      \draw [blue, solid, ->] (0,-2) -- ($(a)!(0,-2)!(b)$);

   \end{tikzpicture}
\end{document}

여기에 이미지 설명을 입력하세요

답변2

더럽고 빠른 수정을 위해 극좌표를 사용하여 선을 평행하게 유지하는 것이 좋습니다. 그런 다음 두 번째 매개변수를 사용하여 감지기에 도달하는 데 필요한 길이를 대략적으로 계산할 수 있습니다.

\begin{tikzpicture}[scale=0.5]
      %target
      \draw[fill=gray!30,gray!30] (0,3)rectangle(2,-3);
      %tracks
      \draw[->,thick] (-2,2)--(0,2);
      \draw[->,dashed] (0,2)--+(240:5.8);
      \draw[->,thick] (-2,1)--(2,1);
      \draw[->,dashed] (2,1)-- +(240:5.9);
      \draw[->,thick] (-2,-1)--(2,-1);
      \draw[->,dashed] (2,-1)-- +(240:4.2);
      \draw[->,thick] (-2,-2)--(0,-2);
      \draw[->,dashed] (0,-2)-- +(240:2.3);
      %detector
      \draw[red, rotate around={60:(-1,-3)}] (-3,0) rectangle (-2,-6);
\end{tikzpicture}

여기에 이미지 설명을 입력하세요

관련 정보