亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

三角形多邊形的最大中位數的有效方法

三角形多邊形的最大中位數的有效方法

拉莫斯之舞 2022-08-02 16:04:10
目的我有一湯三角形多邊形。我想檢索每個三角形的最大中位數作為向量。工作狀態起點:點數組 (n,3),例如 [x,y,z]引用上述點數組的三角形點索引數組 (n, 3),例如 [[0,1,2],[2,3,4]...]我將兩個包含真實3D點坐標的單個矩陣組合在一起。然后我計算中位數向量及其長度。/編輯:我將代碼更新為我的當前版本def calcMedians(polygon):    # C -> AB = C-(A + 0.5(B-A))    # B -> AC = B - (A + 0.5(C-A))    # A -> BC = A - (B    dim = np.shape(polygon)    medians = np.zeros((dim[0],3,2,dim[1]))    medians[:,0,0] = polygon[:,2]    medians[:,0,1] = polygon[:,0] + 0.5*(polygon[:,1]-polygon[:,0])     medians[:,1,0] = polygon[:,1]    medians[:,1,1] = polygon[:,0] + 0.5*(polygon[:,2]-polygon[:,0])    medians[:,2,0] = polygon[:,0]    medians[:,2,1] = polygon[:,1] + 0.5*(polygon[:,2]-polygon[:,1])    m1 = np.linalg.norm(medians[:,0,0]-medians[:,0,1],axis=1)    m2 = np.linalg.norm(medians[:,1,0]-medians[:,1,1],axis=1)    m3 = np.linalg.norm(medians[:,2,0]-medians[:,2,1],axis=1)    medianlengths = np.vstack((m1,m2,m3)).T    maxlengths = np.argmax(medianlengths,axis=1)    final = np.zeros((dim[0],2,dim[1]))    dim = np.shape(medians)    for i in range(0,dim[0]):        idx = maxlengths[i]        final[i] = medians[i,idx]    return final現在,我首先使用空矩陣創建最終的中值向量矩陣。長度使用np.linalg.norm計算并收集在矩陣中。對于此矩陣,argmax 方法用于識別目標中值向量。問題Old:但是,我對維度感到困惑,目前無法使其工作或了解結果是否正確。有人知道如何正確地做到這一點和/或這種方法是否有效?我的目標是以[n_polygons,3(由于3個中位數),2(起點和終點),3(xyz)]的形式構造3個中位數。使用最大長度信息,我想將其簡化為[n_polygons,2(起點和終點),3(xyz)]在函數中使用這個臨時的 for 循環,我可以創建輸出。但是必須有一個更“干凈”的矩陣方法。使用中位數[:,最大長度,:,:]會導致形狀為[4,n_polygons,2,3]而不是[n_polygons,2,3],我不明白為什么。兩個三角形的中位數的示例圖像:不幸的是,我沒有一個大型的示例性數據集,但我想這可以很快生成。上圖中的示例數據集是:polygons = np.array([[0,1,2],[0,3,2]]) points = np.array([[0,0],           [1,0],           [1,1],           [0,1]]) polygons3d = points[polygons[:,:]]
查看完整描述

1 回答

?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

最長的中位數表示最短的三角形邊。查看此處,將中位數長度公式重寫為

M[i] = Sqrt(2(a^2+b^2+c^2)-3*side[i]^2) / 2

因此,您可以僅使用邊長來簡化計算(也許您已經擁有它們)

關于 3D 坐標 - 只需在不垂直于點平面的任何坐標平面上使用投影 - 忽略一個維度(選擇具有最低值范圍的維度)


查看完整回答
反對 回復 2022-08-02
  • 1 回答
  • 0 關注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號