繁體
|
簡體
Sclub交友聊天~加入聊天室當版主
(檢舉)
分享
新浪微博
QQ空间
人人网
腾讯微博
Facebook
Google+
Plurk
Twitter
Line
标题:
TikZ 垂足的定位
[打印本页]
作者:
isee
时间:
2019-7-27 15:55
标题:
TikZ 垂足的定位
本帖最后由 isee 于 2019-8-10 15:55 编辑
总是忘,记录一下
垂足定位:
<a>!<c>!<angle>:<b>
首先考虑一条由<a>到<b>的线段,
然后绕点<a>以<angle>角度旋转线段.
然后再过c点作垂线,那么垂足坐标就可以表示为<a>!<c>!<angle>:<b>
如果这条线段没有旋转,则可省略<angle>参数
源自 网海水手
=======================
(美元符号(a)!(c)!(b)美元符号)
C在AB上垂足
作者:
kuing
时间:
2019-7-27 16:18
直接看手册 13.5 Coordinate Calculations 部分就是了,示例都画得很清楚。
三种情形:
<coordinate>!<number>!<angle>:<second coordinate>
<coordinate>!<dimension>!<angle>:<second coordinate>
<coordinate>!<projection coordinate>!<angle>:<second coordinate>
复制代码
第一个就是位似旋转,第二个是将比例改为一个给定距离,第三个是用另一个点的垂足位置来定。
作者:
isee
时间:
2019-7-27 16:21
回复
2#
kuing
其实网上基本都是手册的理解而已,这个我记下,先,然后再看。。
作者:
kuing
时间:
2019-7-27 17:48
闲着没事干,画了个谁都能一眼看懂的图示
:
2019-7-27 17:47
若不旋转,可省略 60: 。
附代码:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
%直角标记及弧标记
\newlength\zjw%直角标记宽度
\zjw=7pt
\newcommand\zjbj[4][]{%
\draw[#1] let \p1=(#2),\p2=(#4),\p0=(#3),
\n1={atan2(\y1-\y0,\x1-\x0)},
\n2={atan2(\y2-\y0,\x2-\x0)} in
(#3)++(\n1:\zjw)--++(\n2:\zjw)--++(\n1:-\zjw);
}
\newlength\hur%弧半径
\newlength\huj%字母与弧的间距
\hur=7pt
\huj=10pt
\newcommand\hubj[5][]{%
\draw[#1] let \p1=(#2),\p2=(#4),\p0=(#3),
\n1={atan2(\y1-\y0,\x1-\x0)},
\n2={atan2(\y2-\y0,\x2-\x0)},
\n3={Mod(\n2-\n1,360)} in
(#3)++(\n1:\hur)arc[start angle=\n1,delta angle=\n3,radius=\hur]
(#3)+(\n1+0.5*\n3:\hur+\huj) node {$#5$};
}
%测试用的临时命令
\newcommand\wsxztest[1]{%
\tikz{\draw (0,1) coordinate[label=180:$A$] (A)
-- (3,0) coordinate[label=0:$B$] (B);
#1}}
\begin{document}
\def\bi{0.7}\def\ag{60}
\texttt{C = \$(A)!\bi!\ag:(B)\$}
\wsxztest{
\coordinate[label=0:$C$] (C) at ($(A)!\bi!\ag:(B)$);
\draw (A)--node[sloped,above]{$\bi AB$}(C);
\hubj BAC{\ag^\circ}
}
\def\bi{1.5cm}
\texttt{C = \$(A)!\bi!\ag:(B)\$}
\wsxztest{
\coordinate[label=0:$C$] (C) at ($(A)!\bi!\ag:(B)$);
\draw (A)--node[sloped,above]{\bi}(C);
\hubj BAC{\ag^\circ}
}
\texttt{C = \$(A)!(P)!\ag:(B)\$}
\wsxztest{
\fill (2,1) coordinate[label=0:$P$] (P) circle (2pt);
\coordinate[label=$C$] (C) at ($(A)!(P)!\ag:(B)$);
\draw (A)--(C)--(P);
\hubj BAC{\ag^\circ}
\zjbj ACP
}
\end{document}
复制代码
图片附件:
QQ截图20190727174641.png
(2019-7-27 17:47, 25.61 KB) / 下载次数 373
http://kuing.orzweb.net/attachment.php?aid=7509&k=192ecff0f5f62211c27af19afbae3c75&t=1711678485&sid=1dg00O
作者:
kuing
时间:
2019-7-27 21:39
还可以这样玩[precode]\def\ag{45}\def\bi{{0.5*sqrt(2)}}
\wsxztest{\draw (A)
--($(A)!\bi!\ag:(B)$)
--($(A)!\bi!\ag:(B)!\bi!\ag:(B)$)
--($(A)!\bi!\ag:(B)!\bi!\ag:(B)!\bi!\ag:(B)$)
--($(A)!\bi!\ag:(B)!\bi!\ag:(B)!\bi!\ag:(B)!\bi!\ag:(B)$)
--($(A)!\bi!\ag:(B)!\bi!\ag:(B)!\bi!\ag:(B)!\bi!\ag:(B)!\bi!\ag:(B)$);}[/precode]效果:
2019-7-27 21:39
当然,要画这个应该有更简单的方法,这里纯粹是玩玩。
图片附件:
QQ截图20190727213719.png
(2019-7-27 21:39, 3.25 KB) / 下载次数 370
http://kuing.orzweb.net/attachment.php?aid=7511&k=2de2680a49296c7afb7a70ea48295218&t=1711678485&sid=1dg00O
欢迎光临 悠闲数学娱乐论坛(第2版) (http://kuing.orzweb.net/)
Powered by Discuz! 7.2