我想使用 pstricks 绘制下面的图片:
因此,我使用了一个平面和一个螺旋线。但我希望螺旋线在平面上方的部分比在平面下方的部分画得更暗。我得到的只是这个:
平面上方和下方没有区别。它看起来应该是这样的,用 GeoGebra 绘制:
这是我的代码。有人能帮忙吗?
\documentclass[12pt]{article}
\usepackage{amssymb,amsmath}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{pst-plot,pstricks-add,pst-solides3d,pst-3dplot}
\begin{document}
\psset{unit=1cm}
\begin{pspicture}[showgrid=false,solidmemory](-5,-5)(5,5)
\psset{algebraic=true}
\psset{lightsrc=10 -20 50,viewpoint=50 20 20 rtp2xyz,Decran=50}
\axesIIID(0,0,0)(4,4,6)
%Helix
\defFunction[algebraic]{helice}(t){t/3}{sin(t)}{cos(t)}
\psSolid[action=none,object=courbe,r=0,range=0 -10 Pi mul,linecolor=blue,linewidth=0.1,resolution=720,function=helice,name=A1]
%plane
\psSolid[action=none,object=new,fillcolor=red,incolor=blue,sommets=-10 -2 0 -10 2 0 2 2 0 2 -2 0,faces={[0 3 2 1]},opacity=0.2,name=B1]
%Fusion
\psSolid[action=draw*,object=fusion,base=A1 B1,opacity=0.5]
\end{pspicture}
\end{document}
答案1
为了绘制螺旋,我建议使用以下代码:
\documentclass{article}
\usepackage{pst-solides3d}
\begin{document}
\begin{pspicture}[showgrid=false,solidmemory](-5,-5)(5,5)
\psset{algebraic=true}
\psset{lightsrc=50 20 70 rtp2xyz,viewpoint=50 10 15 rtp2xyz,Decran=50}
%Helix
\defFunction[algebraic]{helice}(t){t/3}{sin(t)}{cos(t)}
\psSolid[action=none,object=courbe,r=0.02,range=-10 Pi mul 0,function=helice,
plansepare={[0 0 1 0]},name=solenoid]
\psSolid[object=load,load=solenoid1,grid,fillcolor=red](0,0,0)
\psSolid[object=plan,definition=equation,name=planhorizontal,opacity=0.7,filcolor=yellow!20,
args={[0 0 1 0]},base=-11 1 -3 3,planmarks,showBase]
\psset{plan=planhorizontal}
\multido{\i=-1+-2,\I=-90+-180}{10}{%
\psProjection[object=cercle,args=\i\space Pi 2 div mul 3 div \I\space sin 0.1,range=0 360]}%
\psSolid[object=load,load=solenoid0,grid,fillcolor=red](0,0,0)
\end{pspicture}
\end{document}
对于螺线管的场线,请查看 pst-magneticfield 包。