Mathematica中的3D几何图

时间:2011-03-15 21:57:59

标签: user-interface geometry wolfram-mathematica 3d

planar geometry plot question中,我问过如何绘制平面几何结构。现在我想将它扩展到3D。不仅那些几何包都做得不好,我在Mathematica也遇到了很多障碍。

    据我所知,
  1. Locator在3d中不可用。

  2. Manipulate似乎也不适用于3D。

  3. 让我举一个具体的例子。我有一个正确的圆锥体,其高度为h,孔径为2 theta。它的圆形底座位于水平面上。给定锥形元素,在通过锥形元素的该锥体的切平面中绘制直径为d的圆。然后绘制该圆的水平直径。谢谢你的帮助。

1 个答案:

答案 0 :(得分:5)

这真的不是那么难。首先,我们定义一个由其中心位置给出的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}]]

然后在{x,y,z}切线上的尖端上给出{0,0,h}{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}]}]}} ] 。其余的只是绘图:

{{1}}

enter image description here