我正在试验,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=line
6 个参数会产生预期的结果。
我误解了这个定义吗?
答案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]