Forgot password?
 Create new account
View 3946|Reply 23

请问如何标记直角符号?

[Copy link]

11

Threads

24

Posts

209

Credits

Credits
209

Show all posts

aaa Posted at 2019-3-16 17:03:11 |Read mode
Last edited by hbghlyj at ereyesterday 19:47

如何标记图中红色的直角符号?画图的代码能更简洁点吗,有的话麻烦贴一下?谢谢
善始者实繁,克终者盖寡。

701

Threads

110K

Posts

910K

Credits

Credits
94165
QQ

Show all posts

kuing Posted at 2019-3-16 18:02:25
以前曾经写过一次,刚翻查了下,发现以前的方式有点笨,改进后如下:
  1. \newcommand\zjbj[4][7pt]{%
  2. \draw let \p1=(#2),\p2=(#4),\p0=(#3) in
  3. (#3)++({atan2(\y1-\y0,\x1-\x0)}:#1)
  4. --++({atan2(\y2-\y0,\x2-\x0)}:#1)
  5. --++({atan2(\y1-\y0,\x1-\x0)}:-#1);
  6. }
Copy the Code
举个栗子:
\tikz{
\coordinate (A) at (4,0);
\coordinate (B) at (3.5,3.5);
\coordinate (C) at (0,3);
\draw (A)--(B)--(C);
\zjbj ABC
}
标记的大小默认 7pt,你可以自己修改它。
有些时候图很小,也可个别调小一些,比如
\tikz{
\draw (0,0.5)--(0,0)--(0.5,0);
\zjbj[3pt]{0,0.5}{0,0}{0.5,0}
}

801

Threads

4889

Posts

310K

Credits

Credits
36169

Show all posts

isee Posted at 2019-3-16 19:53:07
我是手动旋转画2mm的线段组成。

不知道pic命令中有没有直接标记直角功能。

701

Threads

110K

Posts

910K

Credits

Credits
94165
QQ

Show all posts

kuing Posted at 2019-3-16 21:15:54
回复 3# isee

得看版本,我电脑上的 texlive 还是 2016,其 pgf 版本 3.0.1a 里没有。
但在 CTAN 上查,可以看到最新的 3.1.1 里就有了,第 561 页里有 right angle 这个 Pic type 就是标直角。
TIM截图20190313014824.png

其实用起来还是 2# 的方便

801

Threads

4889

Posts

310K

Credits

Credits
36169

Show all posts

isee Posted at 2019-3-16 23:34:28
回复 4# kuing


然来 right angle 即可,,,,,果然手册里有,你翻到了,更厉害。。。

801

Threads

4889

Posts

310K

Credits

Credits
36169

Show all posts

isee Posted at 2019-3-16 23:35:24
其实用起来还是 2# 的方便

我不整自已命令。。。。看你用即是。。。

11

Threads

24

Posts

209

Credits

Credits
209

Show all posts

 Author| aaa Posted at 2019-3-17 08:20:31
Last edited by aaa at 2019-3-17 08:51:00回复 2# kuing 谢谢kuing,想问一下如何给直角标记\zjbj加属性啊,加个颜色什么的

11

Threads

24

Posts

209

Credits

Credits
209

Show all posts

 Author| aaa Posted at 2019-3-17 08:21:00
回复 3# isee
好的,谢谢哦

801

Threads

4889

Posts

310K

Credits

Credits
36169

Show all posts

isee Posted at 2019-3-17 11:18:39
Last edited by hbghlyj at ereyesterday 20:05
回复  kuing 谢谢kuing,想问一下如何给直角标记\zjbj加属性啊,加个颜色什么的
aaa 发表于 2019-3-17 08:20

那就用4楼的新命令 angle pic 啊


PS:我不推荐纯手工作的,虽然也只需麻烦一次。kuing中用正切函数明显高明些。。。

701

Threads

110K

Posts

910K

Credits

Credits
94165
QQ

Show all posts

kuing Posted at 2019-3-17 12:29:41
回复 7# aaa

有颜色等样式的需求,那就用 4# 的,不过需要你的版本够新,我的另一台电脑上的 texlive2017 也没有 right angle 这个 Pic type,看来至少要 2018 的。

701

Threads

110K

Posts

910K

Credits

Credits
94165
QQ

Show all posts

kuing Posted at 2019-3-17 14:41:16
Last edited by hbghlyj at ereyesterday 20:06如果版本低,又不想装新的,那 2# 的也可以这样改:
  1. \newlength\zjw
  2. \zjw=7pt
  3. \newcommand\zjbj[4][]{%
  4. \draw[#1] let \p1=(#2),\p2=(#4),\p0=(#3) in
  5. (#3)++({atan2(\y1-\y0,\x1-\x0)}:\zjw)
  6. --++({atan2(\y2-\y0,\x2-\x0)}:\zjw)
  7. --++({atan2(\y1-\y0,\x1-\x0)}:-\zjw);
  8. }
Copy the Code
也就是新建一个长度命令 \zjw 来统一控制标记的大小,需要改变大小的时候先设 \zjw 再用 \zjbj,而 \zjbj 的可选参数就用来控制线的样式。

完整的示例如下:
  1. \documentclass{article}
  2. \usepackage{tikz}
  3. \usetikzlibrary{calc}
  4. \newlength\zjw
  5. \zjw=7pt
  6. \newcommand\zjbj[4][]{%
  7. \draw[#1] let \p1=(#2),\p2=(#4),\p0=(#3) in
  8. (#3)++({atan2(\y1-\y0,\x1-\x0)}:\zjw)
  9. --++({atan2(\y2-\y0,\x2-\x0)}:\zjw)
  10. --++({atan2(\y1-\y0,\x1-\x0)}:-\zjw);
  11. }
  12. \begin{document}
  13. \tikz{
  14. \coordinate (A) at (2,0);
  15. \coordinate (B) at (1.75,1.75);
  16. \coordinate (C) at (0,1.5);
  17. \draw (A)--(B)--(C);
  18. \zjbj ABC
  19. }
  20. \tikz{
  21. \draw (0,0.5)--(0,0)--(0.5,0)(0,0)--(0,0,0.7);
  22. \zjw=4pt
  23. \zjbj{0,0.5}{0,0}{0.5,0}
  24. \zjbj{0,0,0.7}{0,0}{0.5,0}
  25. }
  26. \tikz{
  27. \coordinate (A) at (2,0);
  28. \coordinate (B) at (1.75,1.75);
  29. \coordinate (C) at (0,1.5);
  30. \draw (A)--(B)--(C);
  31. \zjbj[red,thick]ABC
  32. }
  33. \end{document}
Copy the Code
效果:
QQ截图20190317144812.png

注:在 tikz 里面改变 \zjw 只是局部改变,不会影响全局,如果在外面改就会影响全局。

801

Threads

4889

Posts

310K

Credits

Credits
36169

Show all posts

isee Posted at 2019-3-17 15:35:25
回复 10# kuing

这个跟texlive的版本没关系吧,只是tikz pfg的版本有关吧。

我刚刚升级了所有package,pgfmanual.pdf 才是你4楼说的哪个。。(我 texlive 2018)

801

Threads

4889

Posts

310K

Credits

Credits
36169

Show all posts

isee Posted at 2019-3-17 15:43:12
回复 11# kuing

啧啧,就那是开发了个命令嘛。。。

当初升级 package 用画角的 pic 新命令,于是就有升级 package  的动力了,刚升级后,现在终于有直角原生支持了。。。。测试通过了。。。。

如果不是直角,哈哈,就是平行四边形。。
angle.png

801

Threads

4889

Posts

310K

Credits

Credits
36169

Show all posts

isee Posted at 2019-3-17 15:43:56
Last edited by hbghlyj at ereyesterday 20:06哦,注意,angle pic 需要加载
\usetikzlibrary{angles}
否则,无法运行

801

Threads

4889

Posts

310K

Credits

Credits
36169

Show all posts

isee Posted at 2019-3-17 15:45:57
pic 命令是2015年新加的,三年余,才有 right angle ,这足以说明老外不喜欢标直角,哈哈。

701

Threads

110K

Posts

910K

Credits

Credits
94165
QQ

Show all posts

kuing Posted at 2019-3-17 15:47:31
回复 12# isee

嗯,只更新宏包也可以。
我那样说是我的习惯问题,我不会单独更新宏包,每次都是重装电脑的时候再找新的整个装

701

Threads

110K

Posts

910K

Credits

Credits
94165
QQ

Show all posts

kuing Posted at 2019-3-17 15:54:26
回复 13# isee

“不是直角就是平行四边形”那是肯定这样设计的呀,包括我写的那个命令也一样(更准确说是菱形)。
还有,我的也可以变成箭头,\zjbj[->]ABC 就行

701

Threads

110K

Posts

910K

Credits

Credits
94165
QQ

Show all posts

kuing Posted at 2019-3-17 16:00:13
回复 15# isee

当年我也觉得奇怪,有弧的却没有直角的,昨天你这样一问,我突然就想或许现在有了,一查就中了

801

Threads

4889

Posts

310K

Credits

Credits
36169

Show all posts

isee Posted at 2019-3-17 16:02:47
Last edited by hbghlyj at ereyesterday 19:43发现楼主中点命令,和所有点都是手动控制的,和我风格很像。

以前画直角基本就是这个思想,现在回年一看在pic或者kuing的自定义命令之下就完全没啥作用了。

801

Threads

4889

Posts

310K

Credits

Credits
36169

Show all posts

isee Posted at 2019-3-17 16:18:46
回复 18# kuing


我以前其实翻过,只是没看到直角符号,但又不是很懂英文,只是不确定,不过,心中大至确定还得自己动手,哈哈。

幸好你一查就中了。从pgfman*文件建立 信息来看是 2019年2月2号,很新的~

手机版Mobile version|Leisure Math Forum

2025-4-19 17:46 GMT+8

Powered by Discuz!

× Quick Reply To Top Return to the list