簡體   English   中英

計算頂點陣列之間的距離

[英]Calculating distance between an array of vertices

我正在使用一個具有70個頂點的人臉的庫,有沒有一種快速的方法/循環可用於計算所有頂點之間的距離,例如我要插入點32和點27之間的距離並插入它變成一個div。 我目前正在使用它來獲取每個點的坐標。

 var position = ctrack.getCurrentPosition();
                             edx1 = position[27][0];//Eyeposition left
                             edy1 = position[27][1];

                             edx2 = position[32][0];//Eyeposition Right
                             edy2 = position[32][1];

然后使用畢達哥拉斯定理計算差異,這似乎很慢,想知道是否有更好的方法?

var distBetweenEyes = Math.sqrt( (edx1-edx2)*(edx1-edx2) + (edy1-edy2)*(edy1-edy2) );

下面的頂點圖

在此處輸入圖片說明

我想知道是否可以即時執行此操作,例如我有一個循環可以計算所有70個點之間的距離,然后希望能夠快速存儲任意兩個點之間的距離,以便將這些信息推送到html。

嘗試:

function distance(i, j, data) {
    return Math.pow(data[i][0] - data[j][0], 2) + Math.pow(data[i][1] - data[j][1], 2);
}

(如Meredith所指出的,您無需獲取平方根值即可進行比較)

然后通過以下方法獲得所需的距離:

var distBetweenEyes = distance(27, 32, position);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM