急,在线等,关于提高搜索效率的问题。

tiancai1 2007-09-04 10:02:21
比如我想搜索一幅图上以某一点为圆心,R为半径的圆环上的像素点,并把像素点的(X,Y)值存起来,通常的算法是用两重循环得到,那样要找 4*R*R 个像素点,太浪费时间了,我想大家又没有什么提高速度的算法,谢谢了。
...全文
122 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
llg84 2007-09-06
  • 打赏
  • 举报
回复
1.根据圆心坐标表以及半径确定所有像素纵坐标范围;
2.循环求每个纵坐标对应的边界横坐标;
知道每个纵坐标对应的横坐标边界的话得到像素坐标很容易了吧
mathe 2007-09-05
  • 打赏
  • 举报
回复
用Bresenham算法,用google搜索。
这个不算搜索问题
HW121 2007-09-05
  • 打赏
  • 举报
回复
图形学不是有中点画圆算法:
//圆心(x0,y0)
for(int x = 0, y=R, d=1-R; x++<y;) {
if(d <0) d +=2*x+1;
else { y--; d+=2*(x-y)+1; }
// 把像素点的(x0+x,y0+y)值存起来
// 把像素点的(x0-x,y0+y)值存起来
// 把像素点的(x0+x,y0-y)值存起来
// 把像素点的(x0-x,y0-y)值存起来
// 把像素点的(x0+y,y0+x)值存起来
// 把像素点的(x0-y,y0+x)值存起来
// 把像素点的(x0+y,y0-x)值存起来
// 把像素点的(x0-y,y0-x)值存起来
}
tanfenghua518 2007-09-04
  • 打赏
  • 举报
回复
在计算机上实现比较容易,如果半径是有限长,给定圆心(0,0),先算出所有的有限半径对应的象素位置,保存其来,然后当圆心变的时候,直接平移象素就可以了。应该数据量不是太大吧。
tiancai1 2007-09-04
  • 打赏
  • 举报
回复
你就是说用三角函数的方法了,我感觉也就这个最快了。
Michael_Xie 2007-09-04
  • 打赏
  • 举报
回复
圆心和半径都知道了,那么圆的轨迹不就知道了吗?拿纸笔画画就知道该怎么利用数学求解了。

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧