讓我們拿點。如何訂購點逆時針
pt={{-4.65371,0.1},{-4.68489,0.103169},{-4.78341,0.104834},{-4.83897,0.100757},
{-4.92102,0.0949725},{-4.93456,0.100181},{-4.89166,0.122666},{-4.78298,0.129514},
{-4.72723,0.121442},{-4.68355,0.11023},{-4.65371,0.1},{-4.66924,0.10173},
{-4.93059,0.0966989},{-4.93259,0.105094},{-4.91074,0.116966},{-4.90635,0.094878},
{-4.66846,0.105327},{-4.92647,0.0956182},{-4.93433,0.102498},{-4.9333,0.0982262},
{-4.66257,0.10102}};
現在,他們都在一定的順序(對我來說是一個障礙!)由此可以看出,如果我們看一下ListLinePLot
picUnorder=ListLinePlot[pt,Frame-> True,Mesh-> All,MeshStyle-> PointSize[Large]];
SeepicUnorder=ListLinePlot[pt,Frame-> True,Mesh-> All,MeshStyle->
PointSize[Large]]/.Line[rest_]:>{Arrowheads[Table[0.02,{i,0,1,.02}]],Arrow[rest]};
GraphicsGrid[{{picUnorder,SeepicUnorder}}]
但我們需要訂購他們像下面的圖片。
有誰有一些建議的算法,這樣的2D點沿逆時針方向進行排序,以便我們可以只通過在重新安排使用ListLinePlot
重新排列點的列表來創建像上次PIC幾何點????
使用建議我們得到如下內容。
center=Mean[pt];
pts=SortBy[pt,Function[p,{x,y}=p-center;ArcTan[x,y]]];
Show[ListPlot[pt],ListLinePlot[pts,Mesh-> All,MeshStyle->
PointSize[Large]],Frame-> True]
BR
「順時針」需要一箇中心和空間定位...問題是中心...... –
允許我提醒三件事,我們通常在這裏做的:1)當你得到幫助,儘量給它**在您的專業領域回答問題** 2)['閱讀常見問題解答'](http://tinyurl.com/2vycnvr)3)當您看到良好的問答時,通過['使用灰色三角形'](http://i.imgur.com/kygEP.png),因爲系統的可信度基於用戶通過分享知識獲得的聲譽。另外請記住接受更好地解決您的問題的答案,如果有的話,['通過按複選標記](http://tinyurl.com/4srwe2t) –
謝謝@belisarius我會盡我所能按照建議。順便說一下,你認爲FindShortestTour的答案適用於一般的凹點集合嗎? – PlatoManiac