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