tikz의 좌표 원점은 어디에 있습니까?

tikz의 좌표 원점은 어디에 있습니까?

LaTeX를 사용하여 내 종이에 정삼각형을 만들려고 하는데 tikz(또는 tikzpicture)가 좌표의 원점(0,0) 위치를 선택하는 방법을 이해하지 못합니다. 텍스트를 작성한 후 다음 코드를 사용하여 종이 오른쪽에 삼각형을 그리고 싶습니다.

\documentclass[12pt,a4paper]{article}
\usepackage{tikz}

%parameters are the following : cooX , cooY , triangleSize
\newcommand{\triangle} [3] {
\begin{tikzpicture}
\draw (#1,#2)--(#1+0.5*#3,#2+0.86*#3)--(#1+1*#3,#2)--cycle;
\end{tikzpicture}
}

\begin{document}
\normalsize
Here is my text and the triangle
\triangle {10}{0}{3}
\end{document}

이로 인해 다음이 생성됩니다.

첫 번째 코드 이미지

내 목표는 함수를 호출하여 오른쪽으로 10cm 삼각형을 그리는 것입니다.\삼각형첫 번째 매개변수 사용{10}. 내 코드에서 볼 수 있듯이, 새 명령의 매개변수인 이미 선택한 좌표(10,0)에 삼각형의 첫 번째 점을 그려야 합니다.\삼각형. 문제는 매개변수에 무엇을 하든 원점이 항상 동일하다는 것입니다. 넣어도 결과는 똑같을 것 같아요{20}대신에{10}, 매개변수에 따라 오른쪽으로 10cm 또는 20cm 이동하고 싶습니다. 반면에 다음과 같이 새 명령을 호출할 때 선택한 숫자가 아닌 숫자로 매개변수를 변경하면 다음과 같습니다.

...
\draw (20,#2)--(#1+0.5*#3,#2+0.86*#3)--(#1+1*#3,#2)--cycle;
...
\triangle {10}{0}{3}
...

(이 코드에서 첫 번째 #1을 20으로 변경하고 10을 20으로 바꿨습니다.)

그런 다음 tikz는 이 변화를 고려하여 맨 오른쪽에 시작점이 있는 변형된 삼각형을 보여줍니다.

두 번째 코드 이미지

이는 마치 tikz가 좌표에 어떤 상수(#1 및 #2)를 추가하더라도 항상 원점을 같은 위치에 두기를 원하는 것과 같습니다. 새 명령에 지정한 매개변수에 따라 삼각형을 이동하려면 어떻게 해야 합니까?\삼각형?

답변1

특별한 순서 없이 알아야 할 몇 가지 측면이 있습니다. 먼저 아래 코드의 스크린샷을 보겠습니다.

결과

(1) 흰색 삼각형은 매크로에서 가져온 것이며 코드 자체에는 약간의 차이가 있습니다. 새 줄(실제로는 빈 줄)을 입력하면 새 줄 조판 세트가 생성된다는 관례가 있습니다.

(2) LaTeX는 Word나 다른 편집기에서 알 수 있듯이 타자 작성이 아니라 조판입니다. 엔터티를 조판하려고 시도합니다. 귀하의 경우에는 다음과 같습니다:

  • 공백을 포함한 개별 문자
  • 창조된 것 \newcommand(흰색 삼각형)
  • 그리고 더 많을 수도 있습니다

구텐베르크 시대나 과거 지역 신문처럼 납으로 만든 각 문자 또는 삼각형 주위의 상자를 생각해 보십시오.

LaTeX는 "좋은 조판 결과"라고 "알고 있는" 것이 무엇인지 깨닫기 위해 완료될 때까지 계속해서 엔터티별로 엔터티를 함께 붙일 것입니다.

\newcommand(3) a 안의 각 줄의 마지막 문자가 a로 끝나야 한다는 것은 잘 알려진 효과입니다 %(즉, 나머지 줄을 주석 처리합니다). 이를 놓치면 LaTeX는 의도하지 않은(단순화) 공백을 조판하려고 시도합니다.

(4) 청록색과 노란색 삼각형의 두 가지 변형은 다음과 같이 다릅니다.

  • 청록색에는 7cm의 수평 공간(원하는 이동)이 있습니다(10cm의 차이는 충분히 눈에 띄지 않습니다).\hspace{}
  • 대신 노란색을 사용합니다 \hfill. "블록"을 여기에서 가장 바깥쪽으로 이동합니다.

\documentclass(5) ;-) 에서 나의 유럽 선택을 친절하게 인식해 주십시오 .

\documentclass[12pt,a4paper]{article}
\usepackage{tikz}

%parameters are the following : cooX , cooY , triangleSize
\newcommand{\trngl}[3]{%
\begin{tikzpicture}%
\draw (#1,#2)--(#1+0.5*#3,#2+0.86*#3)--(#1+1*#3,#2)--cycle;%
\end{tikzpicture}%
}

\newcommand{\trnglA}[3]{%
\hspace{7cm}\begin{tikzpicture}% <<< 7cm to see the difference
\draw[fill=teal!20] (#1,#2)--(#1+0.5*#3,#2+0.86*#3)--(#1+1*#3,#2)--cycle;%
\end{tikzpicture}%
}

\newcommand{\trnglB}[3]{%
\hfill\begin{tikzpicture}%
\draw[fill=yellow!20] (#1,#2)--(#1+0.5*#3,#2+0.86*#3)--(#1+1*#3,#2)--cycle;%
\end{tikzpicture}%
}

% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\begin{document}
\normalsize
% ~~~ variations of your code: WATCH the differences ~~~~~~~~~~~~~~~~~~
Here is my text and the \textbf{triangle} on same line \trngl{10}{0}{3}

Here is my text and the \textbf{triangle} still on same line
\trngl{10}{0}{3}


Here is my text and the \textbf{triangle} on next line

\trngl{10}{0}{3}

% ~~~ using some (hopefully correct) \hspace{} ~~~~~~~~~~~~~~
Here is my text and the \textbf{triangleA} on next line

\trnglA{10}{0}{3}

% ~~~ using \hfill ~~~~~~~~~~~~~~~~~~~~
Here is my text and the \textbf{triangleB} on next line

\trnglB{10}{0}{3}

\end{document}

관련 정보