Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

One can use some workarounds

var('x y z u v r theta')
angle = pi/6
radius = tan(angle)*z
p=parametric_plot3d((r*cos(theta),
                   r*sin(theta),
                   r/tan(angle)),
                   (r, 0, radius(z = 1)),
                   (theta, 0, 2*pi),opacity = 0.3,color='lightgray')
p += point3d((radius(z = 0.5), 0, 0.5), color = 'red',size=11)
p += point3d([(radius(z = 0.5)*cos(theta),
               radius(z = 0.5)*sin(theta),
               0.5) for theta in srange(0,2*pi,0.2)],
                    color='blue')
p.show(frame=False)

One can use some workarounds

var('x y z u v r theta')
angle = pi/6
radius = tan(angle)*z
p=parametric_plot3d((r*cos(theta),
                   r*sin(theta),
                   r/tan(angle)),
                   (r, 0, radius(z = 1)),
                   (theta, 0, 2*pi),opacity = 0.3,color='lightgray')
p += point3d((radius(z = 0.5), 0, 0.5), color = 'red',size=11)
p += point3d([(radius(z = 0.5)*cos(theta),
               radius(z = 0.5)*sin(theta),
               0.5) for theta in srange(0,2*pi,0.2)],
                    color='blue')
p.show(frame=False)

You can also add a configurable continuous line

p += line3d([(radius(z = 0.5)*cos(theta),
               radius(z = 0.5)*sin(theta),
               0.5) for theta in srange(0,2*pi,0.2)],
                    color='blue',radius=0.005)