2
我有4個節點是四邊形的頂點。如何將無序點排序爲按時間排序的順序列表?
我需要順時針或順時針排列這些頂點。在MATLAB我知道,只是功能ispolycw
不起作用真實的,當它不順時針此功能排序返回1
是否有任何人誰知道一個函數(或任何建議),我可以將這些頂點排序?
我很感謝您的幫助。
謝謝。
我有4個節點是四邊形的頂點。如何將無序點排序爲按時間排序的順序列表?
我需要順時針或順時針排列這些頂點。在MATLAB我知道,只是功能ispolycw
不起作用真實的,當它不順時針此功能排序返回1
是否有任何人誰知道一個函數(或任何建議),我可以將這些頂點排序?
我很感謝您的幫助。
謝謝。
我創建了一個函數來做到這一次。我沒有代碼得心應手,但基本的做法是這樣的:
因此,如果點是P(4,2):
C = sum(P)/size(P, 1);
dv = bsxfun(@minus, P, C);
a = atan2(dv(:,2), dv(:,1)) + pi;
[s si] = sort(a);
sortedVertices = P(si, :);
我現在不能測試這個,但我認爲這是正確的(或關閉)。
太棒了!我認爲atan2(dv(2,:),dv(1,:))應該是atan2(dv(:,2),dv(:,1))'。以防萬一你不知道,你可以[在線編譯](http://www.compileonline.com/execute_matlab_online.php),當你無法訪問matlab。 – jkshah
對不起,我檢查它,但它只返回第一和第二行P. – Rosa
@Rosa試試我的編輯。它爲我工作。這只是弗洛里斯無法測試它,索引順序不正確。 – jkshah