数字是波斯语(边 SB=6 和角 SBA=60 度)。
答案1
使用 tkz-euclide 的解决方案,但我犯了一个错误(HBS=60 而不是 SBA)。您的示例显示 HBS ??。使用 TikZ 很容易做出同样的事情,但也许您可以放置一些点,例如 A、B、C、S,然后我们可以帮助您完成绘图。
\documentclass[11pt]{article}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{tikzpicture}
\tkzDefPoint(0,0){B}
\tkzDefPoint(4,0){C}
\tkzDefPoint(60:6){S}
\tkzDefPoint(30:3){A}
\tkzDefPointWith[colinear= at S](B,A) \tkzGetPoint{I}
\tkzDefPointBy[projection=onto B--C](S) \tkzGetPoint{H}
\tkzDefPointWith[colinear= at S](B,C) \tkzGetPoint{D}
\tkzDrawPolygon(S,D,I)
\tkzDrawSegments(B,C S,H B,S C,D)
\tkzDrawSegments[dashed](A,C A,B A,I)
\tkzLabelPoints[below right](C,D,H)
\tkzLabelPoints[above left](A,B,S,I)
\tkzMarkRightAngle[fill=lightgray](B,H,S)
\tkzMarkAngle[mark=|,arc=||,size=.5 cm,mkcolor=gray](C,B,S)
\tkzLabelAngle[pos=1,circle,fill=white](C,B,S){$60^{\circ}$}
\tkzLabelSegment[left](B,S){6}
\end{tikzpicture}
\end{document}
更新
TikZ 的坐标定义如下
\begin{tikzpicture}
\coordinate (B) at (0,0);
\coordinate (C) at (4,0);
\coordinate (S) at (60:6);
\coordinate (D) at ($(60:6)+(C)-(B)$);
\coordinate (A) at (30:3);
\coordinate (I) at ($(60:6)+(A)-(B)$);
\coordinate (H) at ($(B)!(S)!(C)$);
\draw (D) -- (S) -- node[left] {6}(B)--(C) -- cycle;
\draw (S) -- (H);
\draw[dashed] (B) -- (A) --(C) (I) -- (A);
\draw (S) -- (I) -- (D);
\end{tikzpicture}
答案2
使用xelatex
或编译以下内容latex-dvips-ps2pdf
。
\documentclass[border=12pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\begin{pspicture}[showgrid=false](9.2,7.7)
\psset{PointSymbol=none}
\pstTriangle[PosAngleA=-140,PosAngleC=135](0,0){B}(5,0){C}(3,2){A}
\pstGeonode[PointName=none](0,0){M}(4,6){N}
\pstTranslation[PointName={none,S,D},CurveType=polygon,PosAngle={0,135,0}]{M}{N}{A,B,C}
\pstLineAB[linestyle=dashed]{A}{A'}
\pstLineAB{B}{B'}
\pstLineAB{C}{C'}
\pstGeonode[PosAngle=-90,PointNameSep=7pt](B'|B){H}
\pstLineAB{B'}{H}
\pspolygon[fillstyle=solid,fillcolor=gray,opacity=0.5](B)(H)(B')
\pstRightAngle{B}{H}{B'}
\end{pspicture}
\end{document}