| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2288 人关注过本帖
标题:[讨论]contains()的效率问题
取消只看楼主 加入收藏
zcx8532
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2005-11-9
收藏
 问题点数:0 回复次数:3 
[讨论]contains()的效率问题
GeneralPath类里面的contains()方法是不是效率很低?我感觉用了contains()方法以后程序执行起来明显慢了很多。
搜索更多相关主题的帖子: contains 效率 GeneralPath 
2007-02-01 09:39
zcx8532
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2005-11-9
收藏
得分:0 
我是要判断一个点是否位于一个做了旋转操作以后的矩形里面,我是这样做的:先把矩形转换成GeneralPath,然后对GeneralPath进行旋转操作,再调用GeneralPath里面的contains()方法来判断。在这种情况下如何调用Shape里面的contains()方法?Shape里面的contains()方法要比GeneralPath里面的contains()方法快吗?

2007-02-01 10:21
zcx8532
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2005-11-9
收藏
得分:0 
public boolean contains(int x, int y){
//(x,y) is in the outer panel's coordinates system
Rectangle2D.Double rectIPS = new Rectangle2D.Double(
topLeftX,topLeftY,imageWidth,imageHeight);
GeneralPath rectPath = new GeneralPath(rectIPS);
rectPath.transform(AffineTransform.getRotateInstance(
angle, (getCenter().x + topLeftX), (getCenter().y + topLeftY)));


return rectPath.contains(x, y);
}
是这样的,如果我把红色部分注释掉,直接调用rectIPS.contain(),速度很快,但是加上红色部分以后速度就变慢了,几乎慢了有2秒钟,我想应该就是GeneralPath里面的contains()方法比较慢吧。但是矩形旋转以后还是矩形,慢也不会慢这么多啊

2007-02-01 10:48
zcx8532
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2005-11-9
收藏
得分:0 
嗯,那也有可能

2007-02-01 11:21
快速回复:[讨论]contains()的效率问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015806 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved