PSTricks,只知道一个点就可以画线。

PSTricks,只知道一个点就可以画线。

我想使用 PSTricks 画一条线。但是,我只有一个点,但我知道要以哪个角度画线,以及要画多长。

有没有办法从点 (x,y) 以给定角度、给定长度绘制一条线?

是否有任何宏包可以帮助我?

答案1

PSTricks 有极坐标:参见手动的

\SpecialCoor
\psline[linewidth=2pt](4;50)(0,0)(4;10)
\psarc[arcsepB=2pt]{->}{3}{10}{50}

生产替代文本

这将要求您移动坐标系,以便原点位于您拥有的点上。

\SpecialCoor否则,您可以使用第 72 页列出的更复杂的选项。特别是([par]node)描述

angle使用、nodesep和参数确定相对于节点的位置offset。例如,([angle=45]A)

但要求您将当前点定义为命名节点(不那么痛苦)。

因此:

\documentclass{article}
\usepackage{pstricks}
\usepackage{pst-node}


\begin{document}
\begin{pspicture}(4,5)
\pnode(1,1){Y}
\SpecialCoor
\psline(Y)([angle=30,nodesep=2]Y)
\end{pspicture}
\end{document}

创建: 替代文本

答案2

可以绘制一条始终从最后一个当前点开始的矢量线。它只需要一个坐标,另一个是当前点。所有点都内部保存为节点,以后可以使用。

替代文本

\documentclass{article}

\usepackage{pstricks-add,multido}

\begin{document}

\begin{pspicture}[showgrid,linewidth=1pt](10,10.4)
 \psStartPoint[A](1,1)% nodes have the base name A
 \psVector(3;30)\psVector(4;60)\psVector[linecolor=red](3;10)
 \psVector[linestyle=dashed](4;110)
 \psline{->}(A0)(A4)

 \psStartPoint[B](1,1)\psset{markAngle}% nodes have the base name B
 \psVector[linestyle=dashed](4;110)
 \psVector[linecolor=red](3;10)
 \psVector(4;60)\psVector(3;30)

 \multido{\iA=0+1}{5}{\uput[0](A\iA){A\iA}\uput[180](B\iA){B\iA}}
 \end{pspicture}

\end{document}

答案3

你需要了解一点后记语言和逆波兰表示法:

\documentclass{article}
\usepackage{pstricks-add}
\usepackage[top=3cm,bottom=3cm,left=3cm,right=3cm]{geometry}
\begin{document}
\begin{figure}[h]
\def\xA{1}
\def\yA{2}
\def\Length{4}
\def\Angle{45} % angles are in degrees
\begin{pspicture}(0,0)(6,6)
\psgrid
% define point A
\cnode*(\xA,\yA){0pt}{A}%
% define point B 
\cnode*(! \Length\space \Angle\space cos mul \xA\space add \Length\space \Angle\space  sin mul \yA\space add){0pt}{B}%
% draw line
\psline[linewidth=1pt](A)(B)%
\end{pspicture}
\end{figure}
\end{document} 

答案4

我认为最简单的方法是使用\SpecialCoor、极坐标形式和origin选项,如下例所示。

\documentclass{article}
\usepackage{pstricks}
\begin{document}

\begin{pspicture}[showgrid=true](5,5)
\SpecialCoor
% draw a line from a point (1,2) at angle 45 degrees and of length 3 unit. 
\psline[origin={1,2}](3;45)
\end{pspicture}
\end{document}

输出:

替代文本


编辑1:

为了确保线长为 3 厘米,我画了一个半径为 3 厘米的红色圆圈。

替代文本

相关内容