2011-03-15 96 views
3

planar geometry plot question中,我問如何繪製平面幾何構造。現在我想把它擴展到3D。不僅這些幾何包不太好,我在Mathematica中也遇到了很多障礙。Mathematica中的3D幾何圖

  1. Locator不能用於3D,據我所知。

  2. Manipulate似乎也不能用3d工作。

讓我舉一個具體的例子。我有一個高度爲h的正圓錐體和一個光圈2 theta。它的圓形底座在水平面上。給定一個錐形元素,在通過錐形元素的錐體的切平面上畫一個直徑爲d的圓。然後畫出這個圓的水平直徑。感謝您的幫助。

+1

第1項是正確的:數學有一個3D定位器不支持。操縱處理三維圖很好(以繪圖的速度等),所以我不知道你可能會在第2項中聲稱。 – 2011-03-15 22:19:36

+1

只是一個問題,你會如何想要一個3d定位器在2d上工作屏幕?您可以使用其他控件以3D形式移動某些內容,但不能使用定位器。我建議你瀏覽演示項目(例如[this one](http://demonstrations.wolfram.com/PlaneSectionsOfSurfaces/)和[this one](http://demonstrations.wolfram.com/DandelinSpheresForAnEllipse/)),看看是什麼在那裏。 – Simon 2011-03-15 22:54:48

+0

Ohhh Loooord /你不會買我/一個3D屏幕.... – 2011-03-15 23:35:18

回答

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}]] 

然後,在{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}]}]}} 
    ] 

enter image description here

+0

這是偉大的。非常感謝。 – 2011-04-15 19:39:29

+0

關於時間有人回答了這個問題。 +1! – 2011-04-15 19:48:21

+0

你能幫助使陰影變成圓形嗎? – 2011-04-17 05:17:21