在 pst-solides3d 中定义两点之间的矢量

在 pst-solides3d 中定义两点之间的矢量

我正在试验,pst-solides3d并且遇到了某些行为。根据文档(6.3.2 2 点定义,第 59 页)

我们还可以用 R^3 中的 2 个给定点 A 和 B 定义一个向量

然后我们使用参数 definition=vecteur3d 和 args=xA yA zA xB yB zB,其中 (xA, yA, zA) 和 (xB, yB, zB) 是点 A 和 B 的相应坐标

如果点 A 和 B 已经定义,我们可以轻松使用命名变量:args=A B。

因此基本上definition=vecteur3d应该在两点之间创建一个向量。但是,这个 MWE:

\documentclass[pstricks]{standalone}
\usepackage{pst-solides3d}
\usepackage{xcolor}
\begin{document}
\psset{viewpoint=10 18 30 rtp2xyz,Decran=10,fontsize=10,unit=1}
\begin{pspicture}(-5,-4)(5,4)
    \psSolid[object=grille,base=-3 3 -3 3]%
    \psSolid[object=plan,definition=equation,args={[0 0 1 0]},fillcolor=red!10,opacity=0.5,base=-3 3 -3 3]
    \psSolid[object=vecteur,definition=vecteur3d,args=-1 -1 0 1 1 0, linecolor=red]
    % note the args=-1 -1 0 1 1 0 above
    \axesIIID(0,0,0)(3,3,3)
\end{pspicture}

\end{document}

生产

在此处输入图片描述

似乎参数相互减去,生成了新的向量。请注意,使用object=line6 个参数会产生预期的结果。

我误解了这个定义吗?

答案1

你说得对。args=-1 -1 0 1 1 0设置为点 B 和 A 的坐标差。这给出了一个具有分量的方向向量2 2 0

现在\psSolid[optional arguments](x,y,z)将对象定位于(x,y,z)

现在您没有使用可选参数(x,y,z),该参数将被解释为(0,0,0)您的草图中的情况。

尝试一下这种方式,我将点 A 设置为矢量对象的位置:

\documentclass[pstricks]{standalone}
\usepackage{pst-solides3d}
\usepackage{xcolor}
\begin{document}
\psset{viewpoint=10 18 30 rtp2xyz,Decran=10,fontsize=10,unit=1}
\begin{pspicture}(-5,-4)(5,4)
    \psSolid[object=grille,base=-3 3 -3 3]%
    \psSolid[object=plan,definition=equation,args={[0 0 1 0]},fillcolor=red!10,opacity=0.5,base=-3 3 -3 3]
    \psSolid[object=vecteur,definition=vecteur3d,args=-1 -1 0 1 1 0, linecolor=red](-1,-1,0)
    % note the args=-1 -1 0 1 1 0 above
    \axesIIID(0,0,0)(3,3,3)
\end{pspicture}
\end{document}

希望这可以澄清一些事情。

附录:该对象line定义一条线(或一系列线段)。我们使用选项args来指定点:

[object=line,args=A0 A1 ...An]

在此处输入图片描述

相关内容