| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1055 人关注过本帖
标题:3d网格中如何围绕单个网格往外层层遍历
只看楼主 加入收藏
jerrytao
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-9-11
收藏
 问题点数:0 回复次数:0 
3d网格中如何围绕单个网格往外层层遍历
各位好

我想问一个类似算法的问题,
如何在一个3D网格中,围绕一个网格一层一层的往外循环出去?
比如中心网格在ijk位置,我想先围绕该网格第一层做循环,之后再围绕第二层做循环,依次往外推。。

我自己写的code如下:
    int layer=0;
    while (layer<10){
      for (int kk = -layer; kk <= layer; kk++) {
       for (int jj = -layer; jj <= layer; jj++) {
          for (int ii = -layer; ii <= layer; ii++) {
              if (fabs(ii)<layer &&fabs(jj)<layer &&fabs(kk)<layer) continue;
              do something...
            }//end of ii
          }//end of jj
         }//end of kk
      layer ++;
     }//end of while
三个for循环,是围绕中心网格所有层的循环,
if语句主要是在循环第layer层的时候,以内的层就直接跳过不再循环。
 当layer=0的时候,对应的是中心网格,
layer=1,循环第一层,
layer=2,循环第二层(if语句使得2层以内的就不再循环了)

但是这种方法运行太慢,我想问问有没有其它的算法可以快速的实现?

多谢

搜索更多相关主题的帖子: for 循环 int 网格 3d 
2020-09-11 23:01
快速回复:3d网格中如何围绕单个网格往外层层遍历
数据加载中...
 
   



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

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