[問題] GeneralPath.contains() doesn't work?

看板java作者 (紅虫)時間18年前 (2006/03/11 11:02), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
下面這個method小弟是放在一個叫CavasDemo class的constructor裡 而CavasDemo 是extends JPannel的.. 問題在於我畫好的Path..無法利用GeneralPath.contains抓到滑鼠click在path裡的點.. 下面是小弟的部分程式碼,請前輩們幫忙..謝謝.. public void mousePressed(MouseEvent e){ p = e.getPoint(); GeneralPath path = new GeneralPath(); //這裡的程式只是為了從我的障礙物中讀出polygon的座標, //並用GeneralPath把這些點連成polygon的軌跡. for(int i = 0;i < f.obstacles.length; i++){ polygon = f.obstacles[i].getPolygon(); Iterator it = polygon.iterator(); while(it.hasNext()){ vertexs =(Point2D[])it.next(); path.moveTo((float)(vertexs[0].getX()* scaleX), (float)(vertexs[0].getY() *scaleY)); for(int j = 1; j < vertexs.length; j++){ path.lineTo((float)(vertexs[j].getX()* scaleX), (float)(vertexs[j].getY() *scaleY)); } path.closePath(); //上面的path是確實可以產生出來的,因為這段程式我同樣放在paintComponet()是可以用 Graph2D.draw()畫出來的 //問題是下面這行程式,畫好的path始終抓不到p(滑鼠點在JPannel上的點) if(path.contains(p){ System.out.println("done"); } } path.reset(); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.200.90
文章代碼(AID): #144ZtDBM (java)
文章代碼(AID): #144ZtDBM (java)