[英]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.