2016-11-18 65 views
0

我有一組可以理解爲揚聲器位置的點。我想寫一個算法,它在二維空間中給定一個虛擬位置時總是選擇三個揚聲器,併爲它們分配振幅,以便當虛擬位置與揚聲器位置重合時,只有該揚聲器的振幅> 0,否則圍繞該點的樹型揚聲器具有重量平衡的振幅。三個揚聲器使用Delaunay三角測量進行選擇。三角剖分:選擇三角形彎角的重量,使其在穿越邊界時保持不變

現在,當我停留在一個三角形內時,這一切都可以正常工作,但當我跨越邊界到下一個三角形時,定義邊界的兩個揚聲器會突然改變其幅度。我想這首先由點投射到三角形的高度:

enter image description here

這裏的虛擬點爲品紅色圓圈,揚聲器是黑色小方塊,並且幅度由藍色圓圈顯現。當紅色圓圈稍微移動到下一個三角形,振幅(藍色圓圈)改變大小:

enter image description here

嘗試用相同的位數投影於事無補。一個三角形:

enter image description here

移動到下一個三角形(振幅再次跳躍):

enter image description here

幅度總是基於投射到對角線葉點的相對位置一個角落。

任何想法如何解決這個問題?我想我需要確保在邊界處,揚聲器的重量只能依賴於形成邊界的兩個揚聲器。也許有一個更聰明的乘法?

回答

0

其實,我的第一種方法是用海拔高度預測值爲,正確的是。我在幅度的定標有一個bug:

enter image description here enter image description here

一種替代,但稍微複雜的變體,是通過虛擬點來繪製從每個角一個線,並計算到的相對位置交叉口相對側:

enter image description here enter image description here

動畫:

enter image description here