## 编译环境 操作系统 * [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 回答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} ```

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。