作者l314 (红虫)
看板java
标题[问题] GeneralPath.contains() doesn't work?
时间Sat Mar 11 11:03:56 2006
下面这个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