2011-06-07 124 views
5

嘗試繪製ConvexHull使用ComputationalGeometry包中的PlanarGraphPlot,它在圖形中使用時不起作用。圖形中的凸凹 - Mathematica

關於如何使用圖形繪製ConvexHull的任何想法?

回答

10
Needs["ComputationalGeometry`"] 
pts = RandomReal[{0, 10}, {60, 2}]; 

Graphics[ 
{ 
    [email protected], 
    FaceForm[], EdgeForm[Red], 
    [email protected][[ConvexHull[pts]]] 
    } 
] 

cpts = pts[[ConvexHull[pts]]]; 
AppendTo[cpts, cpts[[1]]]; 

Graphics[ 
{ 
    [email protected], 
    Red, 
    [email protected] 
    } 
] 

enter image description here

+0

嗯,其實你有這樣想通了使用Faceform [白]。是否有另一種方法,因爲我可能需要在ConvexHull – 500 2011-06-07 20:11:31

+0

@ 500下顯示一些圖形如果你不想看到這些點,沒有什麼比留下繪製它們的線更容易了,並且爲了說明目的我將它包含在內('Point @ pts')。我不確定在這裏是否瞭解你。我不明白你關於'Faceform [white]'的問題。我使用'Faceform []'使多邊形透明。 – 2011-06-07 20:30:03

+0

謝謝。對不起,我感到困惑,現在想通了! – 500 2011-06-07 20:51:42

5

不知道什麼是想要的。也許下面的代碼會讓你開始。

pts = RandomReal[{-10, 10}, {20, 2}] 
(* 
Out[1]= {{1.7178, -1.11179}, {-7.10708, -8.1637}, 
{8.74461, -2.42551}, {6.64129, -2.87008}, {9.9008, 6.47825}, 
{8.27081, 9.94116}, {9.97325, 7.61094}, {-2.7876, 9.70449}, 
{-3.69357, 0.0253506}, {-0.503817, -1.98649}, {6.3056, -1.16892}, 
{-4.69983, -1.93242}, {-6.09983, 7.49229}, {8.08545, 6.67951}, 
{-6.91195, 8.34752}, {-2.63136, 6.0506}, {-0.130006, 2.10929}, 
{1.64401, 3.32165}, {0.611335, -8.11364}, {-2.03548, -9.37277}} 
*) 
With[{hull = pts[[Graphics`Mesh`ConvexHull[pts]]]}, 
    Graphics[Line[Append[hull, First[hull]]]]] 

enter image description here

+0

哎。我忘了如何附加一個gif。 – 2011-06-07 20:07:05

+0

您可能正在開玩笑,但以防萬一您不需要:按編輯窗口上方的小圖形按鈕以提供鏈接或路徑。我通常輸出到PNG,因爲如果我沒有錯誤的話,它的色彩分辨率比GIF好。 – 2011-06-07 20:37:03

+0

投票刪除。沒有gif,沒有答案。 – 2011-06-07 20:46:23