以下代码是我尝试查找M
和N
这样的AM=CN=BC
。
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-eucl,pst-calculate}
\begin{document}
\def\x{\pscalculate{6-3.3541}}
\begin{pspicture}[showgrid](-1,-1)(8,8)
\pstGeonode[PosAngle={180,90,0,-90}](1,2){B}(2.5,5){C}(6,2){A}(\x,2){M}
\pspolygon(B)(C)(A)
\pstRotation[PosAngle=90,RotAngle=75.9638]{C}{B}[N]
\psGetDistanceAB[xShift=-8,yShift=4](B)(C){M}
\psGetAngleABC[AngleValue=true,MarkAngleRadius=.5,LabelSep=0.5,%
ShowWedge=false,xShift=-5,yShift=7,arrows=->](B)(C)(A){}
\end{pspicture}
\end{document}
不过,我尽量不使用\psGetDistanceAB
和 \psGetAngleABC
。
问题
如何仅使用圆规和直尺来获得M
这样N
的结果?AM=CN=BC
答案1
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-eucl,pst-calculate,textcomp}
\begin{document}
\begin{pspicture}[showgrid](-1,-1)(8,8)
\pstTriangle[PosAngle={180,90,0}](1,2){B}(2.5,5){C}(6,2){A}
\pstInterLC[PointSymbolB=none,PointName=none]{A}{C}{C}{B}{N}{N0}\uput[0](N){N}
\pstInterLC[PointSymbolB=none,PointName=none,
Radius=\pstDistCalc{sqrt((2.5-1)^2+(5-2)^2)}]{B}{A}{A}{}{M}{M0}\uput[-90](M){M}
\psarc[origin={C}]{->}(C){0.5}{(B)}{(N)}\uput{5mm}[-10](C){75.9636\textdegree}
\end{pspicture}
\end{document}
答案2
代码越简单,挑战性就越大。
\documentclass[pstricks,12pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\begin{pspicture}[PointSymbolB=none,PointNameB=](7,5)
\pstTriangle(1,1){B}(2.5,4){C}(6,1){A}
\pstTranslation[PointName=none,PointSymbol=none]{B}{A}{C}[C']
\pstInterLC[PosAngle=45]{A}{C}{C}{B}{N}{x}
\pstInterLC[PosAngle=-90]{B}{A}{A}{C'}{M}{y}
\pstMarkAngle[MarkAngleRadius=1.1,LabelSep=.8,arrows=->]{B}{C}{A}{\scriptsize$75.96^\circ$}
\end{pspicture}
\end{document}
笔记
PointNameA
并且PointNameB
无法分配,none
只能为空。这看起来像是一个错误。
答案3
另一个 tikz 版本:
\documentclass[tikz,border=12pt]{standalone}
\usetikzlibrary{calc,bending,arrows.meta,quotes,angles}
\usepackage{textcomp}
\begin{document}
\begin{tikzpicture}[dot/.style={fill,circle,inner sep=1.2pt},>= Stealth]\footnotesize
\pgfmathsetmacro\BC{sqrt(1.5*1.5+3*3)}
\pgfmathsetmacro\AC{sqrt(3.5*3.5+3*3)}
\draw (1,2)coordinate[dot,label=left:$B$](b)--(2.5,5)coordinate[dot,label=above:$C$](c)--(6,2)coordinate[dot,label=right:$A$](a)--cycle;
\node at ([xshift=-\BC cm]a) [dot,label=below:$M$] {};
\node at ($(c)!\BC/\AC!(a)$) [dot,label=right:$N$] {};
\pic["75.96\textdegree",draw,->,angle eccentricity=.7,angle radius=1cm] {angle=b--c--a};
\end{tikzpicture}
\end{document}
答案4
您无需自己计算任何内容的版本。所有距离和角度都可以用 Ti 非常方便地计算钾Z。更详细地说,以下代码计算B
和C
(\n1
)之间的距离以及所有边的“斜率”,然后使用极坐标设置M
\n1
远离A
方向B
和N
\n1
远离C
方向A
。在的角度B
也是通过计算tikz
并通过插入的\pgfmathprintnumber
,如果需要,您可以指定位数等等。
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{calc,angles,quotes}
\begin{document}
\begin{tikzpicture}
\draw (1,2) coordinate[label=below:$B$] (B) --
(2.5,5) coordinate[label=above:$C$] (C) --
(6,2) coordinate[label=right:$A$] (A) -- cycle;
\path let \p1=($(B)-(C)$),\p2=($(B)-(A)$),\p3=($(A)-(C)$),
\n1={veclen(\x1,\y1)},\n2={atan2(\y2,\x2)},\n3={atan2(\y3,\x3)},
\n4={\n3-atan2(\y1,\x1)} in
($(A)+(\n2:\n1)$) coordinate[label=below:$M$] (M)
($(C)+(\n3:\n1)$) coordinate[label=above right:$N$] (N)
pic["$\pgfmathparse{\n4}\pgfmathprintnumber{\pgfmathresult}^\circ$",draw,-latex,angle
eccentricity=1.3,angle radius=1cm]
{angle=B--C--A};
\foreach \X in {A,B,C,M,N}
{\fill (\X) circle (1pt);}
\end{tikzpicture}
\end{document}