TikZ의 직사각형에 화살표 추가하기

TikZ의 직사각형에 화살표 추가하기

화살표로 직사각형을 장식할 수 있나요? 나는 다음을 사용했다:

\node [draw,rectangle,minimum width=4cm,minimum height=4cm](r){};

그런데 직사각형의 가장자리와 수평이 되도록 가장자리를 정렬하는 것이 정말 어렵습니다. 더 쉬운 방법이 있습니까? 나는 그것이 다음과 같이 보이기를 원합니다 :

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

답변1

귀하의 직사각형은 node. 따라서 south및 같은 앵커에 화살표 모양의 노드를 배치할 수 있습니다 east.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.arrows}

\tikzset{
myarrow/.style={
  draw,thick,
  single arrow,
  text width=1cm,
  fill=white
  },
}


\begin{document}
 \begin{tikzpicture}
   \node [draw,rectangle,minimum size=4cm](r){};
   \node[myarrow,rotate=90] at (r.east){};
   \node[myarrow] at (r.south){};
 \end{tikzpicture}%
\end{document}

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

화살표 모양을 수정하려면 pgfmanual725페이지 섹션 67.5의 모양 아래를 참조하세요 single arrow.

답변2

그리고 여기에 간단한 것이 있습니다메타포스트접근하다.

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

prologues := 3;
outputtemplate := "%j%c.eps";

ad_phi = 1/2;
ad_rho = 7/8;

% return the path of an arrow scaled to size "s" at time "t" on path "p"
vardef arrow_decor(expr s, t, p) = 
  save a; path a;
  a = ((1,0) -- (0,ad_rho) -- (0,ad_phi) -- (-1,ad_phi) 
      -- (-1,-ad_phi) -- (0,-ad_phi) -- (0,-ad_rho) -- cycle) 
      scaled 1/2 s
      rotated angle direction t of p 
      shifted point t of p;
  unfill a;
  a
  enddef;

beginfig(1);
path R; 
R = unitsquare xscaled 55 yscaled 34;
draw R; 
for t = 1/2 step 1 until 4:
  draw arrow_decor(8, t, R);
endfor
endfig;
end.

화살표 모양을 조정 ad_rho및 제어합니다. 아니면 매크로 ad_phi의 정의를 적절하게 변경하세요 .a

관련 정보