Mathematica中的3D几何图

| 在平面几何图形问题中,我问如何绘制平面几何结构。现在,我想将其扩展到3D。不仅那些几何软件包效果不佳,而且在Mathematica中我也面临许多障碍。 据我所知,
Locator
在3d中不可用。
Manipulate
在3d中似乎也不起作用。 让我举一个具体的例子。我有一个高度为
h
,孔径为
2 theta
的右圆锥。它的圆形底座在水平面上。给定一个圆锥单元,在通过圆锥单元的该圆锥的切平面上绘制一个直径为
d
的圆。然后画出该圆的水平直径。感谢您的帮助。     
已邀请:
这确实并不难。首先,我们定义一个3D圆,它的中心位置给出了两个矢量,这些矢量跨越了它所在的平面:
Circle3D[{x_, y_, z_}, {v1 : {_, _, _}, v2 : {_, _, _}}, r_] :=
 Line[Table[{x, y, z} + {r Cos[2 Pi t], r Sin[2 Pi t]}.{v1, v2}, {t, 
    0, 1, 1/120}]]
然后在锥的尖端上在
{0,0,h}
处给定点
{x,y,z}
,切线分别为
{x,y,z-h}
{-y,x,0}
。其余的只是绘图:
ConeQuestion[h_, theta_, pt : {x_, y_, z_}, 
   d_] /; (x^2 + y^2) Cos[theta]^2 == Sin[theta]^2 (z - h)^2 := 
 Module[{tangents},
  tangents = {Normalize[{0, 0, h} - pt], Normalize[{-y, x, 0}]};
  {{Opacity[0.8, Yellow], Cone[{{0, 0, 0}, {0, 0, h}}, h*Tan[theta]]},
   {Thick, Dashed, Circle3D[pt, tangents, d]},
   {Red, Sphere[pt, 1/10]},
   {Orange, 
    Line[{pt - d Normalize[{-y, x, 0}], 
      pt + d Normalize[{-y, x, 0}]}]}}
  ]
    

要回复问题请先登录注册