我需要一種方法來檢查用戶是否單擊了貝塞爾樣條曲線。我目前的做法是將其拆分成段,然後檢查點的距離是否足夠接近這些段之一(在數學上的點到段距離法方面就足夠近了)。但這種方法也有缺點:如何選擇Bezier樣條曲線?
正如你看到的,由點紅點標記將不會被視爲積極的,但他們應該是。當然,我可以增加細分市場的數量,但實際上這會使解決方案變得更糟,因爲活躍地區之間的差距會更大。
如何可靠地檢查用戶是否點擊了Bezier樣條曲線附近的區域?
請注意,我把它發佈在StackOverflow而不是它的數學對應物上,因爲我實際上需要比數學解決方案更可靠的啓發式算法(後者大多數情況下會慢到用於我的程序中,這些檢查必須完成實時,在鼠標移動過程中)。
怎麼樣指示由曲線形狀的間隙,並設置附加段僅填補空白? – DJmRek
順便說一句,你如何得到簡化的紅線的點? – DJmRek
物理書呆子在這裏變成了c#程序員,我被Bezier樣條所吸引。 我認爲這取決於你對貝塞爾樣條曲線的定義?你想知道嗎?用戶想要點擊的三行中的哪一行?或者你更關心他拉它還是什麼?也許你可以做的距離不是從紅色的部分,而是從曲線?我同意在紅點區域添加填充不會太困難,但我有點不清楚如何定義它。 – JPK