簡體   English   中英

擺動:檢測鼠標在一般路徑上的移動

[英]Swing: detect mouse move on generalpath

我正在使用GeneralPath繪制一些樣條線,如下所示:

GeneralPath path = new GeneralPath();
path.moveTo(x0, y0);
path.curveTo(x0 + 100, y0, x1 - 100, y1, x1, y1);
((Graphics2D) g).draw(path);

基本上,這將在點(x0; y0)和點(x1; y1)之間繪制看起來像電纜或電線的樣條線。

p0 --
     \
      \
       `-- p1

繪圖還可以,但是現在我想檢測鼠標何時將鼠標懸停在該樣條線上。 問題是, contains(Point)方法似乎無法滿足我的要求。 如果Point在樣條線與(x0; y0)和(x1; y1)之間的直線之間的區域內,則返回true

在上面的示例中,它將對整個“星星”區域返回true:

p0 -----------
     *********\
         ******\
             ***\
                *\* 
                  \******* 
                   `------------- p1

但是只想檢測何時該點正好位於樣條線上。

有什么辦法可以實現我想要的?

任何想法,不勝感激!

編輯:我在文檔中找到了我的問題的解釋,但這並不能幫助我找到解決方案:

包含和相交方法將Shape的內部視為其被包圍的區域,就好像它被填充一樣。 這意味着這些方法將未閉合的形狀視為隱式閉合,以便確定形狀是否包含或與矩形相交或形狀是否包含點。

只要做一條曲線就可以回到起點。 但這對於用戶來說,要完全超越您的曲線將非常非常困難!

暫無
暫無

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

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