繁體
|
簡體
Sclub交友聊天~加入聊天室當版主
(檢舉)
分享
新浪微博
QQ空间
人人网
腾讯微博
Facebook
Google+
Plurk
Twitter
Line
快速注册
登录
论坛
搜索
帮助
原始风格
brown
purple
green
red
orange
gray
pink
violet
blue
greyish-green
jeans
greenwall
私人消息 (0)
公共消息 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
应用通知 (0)
应用邀请 (0)
悠闲数学娱乐论坛(第2版)
»
TeX / LaTeX
» 自定义命令简化tikz画图代码
返回列表
发帖
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
1
#
跳转到
»
倒序看帖
打印
字体大小:
t
T
发表于 2013-8-25 15:59
|
只看该作者
自定义命令简化tikz画图代码
1、\coordinate
这个单词长,难记且打起来慢,而且那个 label 只有8个方向,有时不太好使,虽然可以加 shift 来微调,但是也比较麻烦。
因此当 \coordinate 需要带有 label 时有必要自定义个命令来简化并增强一下 label 的位置。
这里我定义的是带有1个可省参数+4个必要参数的命令 \zba,具体如下:
\newcommand\zba[5][7pt]{\coordinate (#3) at (#2);
\node[shift={(#5*22.5:#1)}] at (#3) {$#4$};}
用法:
\zba[标记中心与点的距离/缺省为7pt]{点坐标/不必加括号}{内部标签}{标记字母/不必加$}{角度系数/可以不是整数}
比如说,命令 \zba{0,0}AA4 相当于
\coordinate (A) at (0,0);
\node[shift={(4*22.5:7pt)}] at (A) {$A$};
命令 \zba[10pt]{2,3}{B1}{B_1}{-1.3} 相当于
\coordinate (B1) at (2,3);
\node[shift={(-1.3*22.5:10pt)}] at (B1) {$B_1$};
复制代码
具体实际及效果见PDF附件
zba.pdf
(25.89 KB)
下载次数: 1924
2013-8-25 16:06
这个命令可能定得比较粗糙,但是对于我来说暂时已经够用了。
或者说也算是抛砖引玉吧,期待大牛们提供更好的方法。
收藏
分享
分享到:
QQ空间
腾讯微博
腾讯朋友
$\href{https://kuingggg.github.io/}{\text{About Me}}$
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
2
#
发表于 2014-3-10 14:38
|
只看该作者
[注]:此楼已多余,tikz/pgf 3.0 开始已有此功能
2、角弧标记
\newcommand\arcnode[6][0.2]{%
\begin{scope}
\clip (#2)--(#3)--(#4)--cycle;
\draw (#3) circle (#5);
\path let \p1=(#2),\p2=(#4),\p0=(#3) in
($(#3)+({0.5*atan2(\x1-\x0,\y1-\y0)+0.5*atan2(\x2-\x0,\y2-\y0)}:{#5+#1})$) node {$#6$}
($(#3)-({0.5*atan2(\x1-\x0,\y1-\y0)+0.5*atan2(\x2-\x0,\y2-\y0)}:{#5+#1})$) node {$#6$};
\end{scope}}
复制代码
懒得写用法说明,因为还有待改进,至少有一个大bug,因为是用 \clip 弄的,所以那个角比较平的时候,弧以及字母可能会被切掉部分。
配合楼上的命令,用如下的代码
\begin{tikzpicture}
\draw[->] (-3,0)--(3,0) node[above]{$x$};
\draw[->] (0,-3)--(0,3) node[left]{$y$};
\zba{45:-1}AA{-7};
\zba{3,2.5}BB4;
\zba{2,-1.1}CC{-3};
\draw (A)--(B)--(C)--cycle;
\arcnode BAC{0.3}\alpha
\arcnode[0.25] ABC{0.35}\beta
\arcnode BCA{0.2}\gamma
\end{tikzpicture}
复制代码
即得
2014-3-10 14:38
注:计算中用到了 atan2 函数,故需要 \usetikzlibrary{calc}
arcnode.tex
(895 Bytes)
下载次数:1595
2014-3-10 14:47
$\href{https://kuingggg.github.io/}{\text{About Me}}$
TOP
其妙
发短消息
加为好友
其妙
当前离线
UID
38
帖子
2386
主题
95
精华
0
积分
12885
威望
4
阅读权限
90
在线时间
1110 小时
注册时间
2013-6-22
最后登录
2022-2-10
3
#
发表于 2014-3-15 21:47
|
只看该作者
latex学的半懂不懂的,这个tikz何时能上手啊
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
4
#
发表于 2014-3-15 22:08
|
只看该作者
回复
3#
其妙
先确定有没有这种需要……
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
5
#
发表于 2014-3-22 20:07
|
只看该作者
回复
2#
kuing
这个看来已经不需要了,最新的 tikz/pgf 3.0 有了这个功能,见
http://texample.net/tikz/examples/angles-quotes/
TOP
返回列表
回复
发帖
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]