簡體   English   中英

在曲線上找到最接近給定點的點

[英]Find the point on a curve which is closest to a given point

在此處輸入圖片說明

我在2D中有一條曲線貫穿我的網格。 隨着時間的流逝,這是向前邁進的一步。 我在這條曲線(前面)上有一組點,在網格上有我的節點。 在每個時間步驟中,我需要找到曲線上的哪個點(前面)最接近我的網格上的節點。 換句話說,對於網格中的每個節點,我想知道曲線上的哪個點最接近它。 是否有內置的MATLAB函數來搜索? (我正在使用MATLAB環境)

在圖中,問題是哪個圓圈是最接近任何黃色正方形的黑色圓圈。

是計算成對距離的有效函數:

function D = sqDistance(X, Y)
    D = bsxfun(@plus,dot(X,X,1)',dot(Y,Y,1))-2*(X'*Y);
end

假設circles是黑色圓圈和坐標squares如你所說,你可以做以下的黃色方格坐標:

% example matrices
circles = rand(5,2);
squares = rand(8,2);

D = sqDistance(squares', circles');    
[~,idx] = sort(D, 2)

closest_points = circles(idx(:,1),:)

closest_points的點與squares具有相同的尺寸,並為每個黃色正方形存儲最近的圓的坐標。

暫無
暫無

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

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