提问于:
浏览数:
2415
## 编译环境
操作系统
* [x] Windows 7/8/10
* [ ] macOS
* [ ] Linux
`若需勾选,请把[ ]改成[x]`
Tex发行版
* [x] TexLive `2019`
* [ ] MikTeX `版本号`
* [ ] CTeX
`若需勾选,请把[ ]改成[x]`
## 我的问题
```markdown
\begin{tikzpicture}
\def\a{1cm} %利用参数定义长度。
\coordinate (A) at (0,0);
\coordinate (B) at (60:\a);
\coordinate (C) at (60:\a) + (\a,0);
\coordinate (D) at (2*\a,0);
\filldraw[fill=pink,draw=black](0,0) -- (60:\a)-- +(6*\a,0) -- (6*\a,0) -- cycle;
\draw [red](60:\a)+(\a,0)--(2*\a,0);
\draw [blue](60:\a)+(3*\a,0)--(3*\a,0);
\draw [magenta](60:\a)+(4*\a,0)--(5*\a,0);
\draw [<->](0,-2mm)--node[below]{$2a$}(2*\a,-2mm);
\draw [<->](B) -- node[above]{$a$}(C);
\draw[<->](A) -- node[left]{$a$} (B);
\end{tikzpicture}
```
生成标注时,左边和上面的标注生成及位置不对,希望得到指点。
2 回答
0
- 请使用代码块功能
- 加上 `calc` 库就好了,将 `($(60:\a) + (\a,0)$)` 计算出一个总的坐标
```
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\def\a{1cm} %利用参数定义长度。
\coordinate (A) at (0,0);
\coordinate (B) at (60:\a);
\coordinate (C) at ($(60:\a) + (\a,0)$);
\coordinate (D) at (2*\a,0);
\filldraw[fill=pink,draw=black](0,0) -- (60:\a)-- +(6*\a,0) -- (6*\a,0) -- cycle;
\draw [red](60:\a)+(\a,0)--(2*\a,0);
\draw [blue](60:\a)+(3*\a,0)--(3*\a,0);
\draw [magenta](60:\a)+(4*\a,0)--(5*\a,0);
\draw [<->](0,-2mm)--node[below]{$2a$}(2*\a,-2mm);
\draw [<->](B) -- node[above]{$a$}(C);
\draw[<->](A) -- node[left]{$a$} (B);
\end{tikzpicture}
\end{document}
```
-
非常感谢! – 海波 2020-12-13 20:38 回复
-
多谢帮助,搞定了。将 ($(60:\a) (\a,0)$) 计算出一个总的坐标。这个方法没注意到。有些场合可以直接加。有些场合要用$$括起来。 – 海波 2020-06-03 11:22 回复
0
```
%更正之后的代码。
%指定彩色是为了方便阅读代码时,对应方便。借助极坐标与平移确定点的位置。
\begin{tikzpicture}
\def\a{1cm} %利用参数定义长度。
\coordinate (A) at (0,0);
\coordinate (B) at (60:\a);
\coordinate (C) at ($(60:\a) + (\a,0)$);%第一次用(60:\a) + (\a,0),出了问题,网友帮助说:加上 calc 库就好了,将 ($(60:\a) + (\a,0)$) 计算出一个总的坐标
\coordinate (D) at (2*\a,0);
\filldraw[fill=pink,draw=black](0,0) -- (60:\a)-- +(6*\a,0) -- (6*\a,0) -- cycle;
\draw [red](60:\a)+(\a,0)--(2*\a,0);
\draw [blue](60:\a)+(3*\a,0)--(3*\a,0);
\draw [magenta](60:\a)+(4*\a,0)--(5*\a,0);
\draw [<->](0,-2mm)--node[below]{$2a$}(2*\a,-2mm);
\draw [<->]($(B)+(0,2mm)$ )-- node[above]{$a$}($(C)+(0,2mm)$ );
\draw[<->]($(A)+(-2mm,1mm)$ ) -- node[left]{$a$} ($(B)+(-2mm,1mm)$ );
\end{tikzpicture}
```
你的回答
请登录后回答
你的回答将会帮助更多人,请务必认真回答问题。