JumpPointSearchPlus with GoalBounding 学习笔记2
2017-12-18 21:16
253 查看
遇到的问题:
1.搜索条目2048条,我写的是从1~2048
从0~2047
2.Lode map函数中读取每个点的目标边界出问题
当不为无效目标时应设置全部bounds为value2的值,错误原因在于设置bounds的minrow为value
3.跳点目标界限的保存
出现的问题表现为所有跳点的goalbounds都是一样的
由于本人采用c#编写,与原始程序有所不同,此处应设置一个数组保存每个点的goalbounds
后续还有很多工作,出现了问题一定要及时记录。
1.搜索条目2048条,我写的是从1~2048
从0~2047
2.Lode map函数中读取每个点的目标边界出问题
for (int dir = 0; dir < 8; dir++) { short value = VALUE[r, c].value1[dir]; if(value == INVALID_GOAL_BOUNDS)//无效的目标 { m_jumpDistancesAndGoalBoundsMap[r, c].bounds[dir, (int)GoalBoundsEnum.MinRow] = (short)BLOCK.N_MAP_HEIGHT; m_jumpDistancesAndGoalBoundsMap[r,c].bounds[dir,(int)GoalBoundsEnum.MaxRow] = 0; m_jumpDistancesAndGoalBoundsMap[r, c].bounds[dir, (int)GoalBoundsEnum.MinCol] = (short)BLOCK.N_MAP_WIDTH; m_jumpDistancesAndGoalBoundsMap[r,c].bounds[dir,(int)GoalBoundsEnum.MaxCol] = 0; } else//有效目标 { m_jumpDistancesAndGoalBoundsMap[r, c].bounds[dir, (int)GoalBoundsEnum.MinRow] = VALUE[r, c].value2[dir, 0]; m_jumpDistancesAndGoalBoundsMap[r, c].bounds[dir, (int)GoalBoundsEnum.MaxRow] = VALUE[r, c].value2[dir, 1]; m_jumpDistancesAndGoalBoundsMap[r, c].bounds[dir, (int)GoalBoundsEnum.MinCol] = VALUE[r, c].value2[dir, 2]; m_jumpDistancesAndGoalBoundsMap[r, c].bounds[dir, (int)GoalBoundsEnum.MaxCol] = VALUE[r, c].value2[dir, 3]; } }
当不为无效目标时应设置全部bounds为value2的值,错误原因在于设置bounds的minrow为value
3.跳点目标界限的保存
出现的问题表现为所有跳点的goalbounds都是一样的
由于本人采用c#编写,与原始程序有所不同,此处应设置一个数组保存每个点的goalbounds
for (int i = 0; i < 8; i++) { JUMPdiss[r, c].jumpdis[i] = jumpPoints.jumpDistance[i]; } // Save Goal Bounds保存目标界限 for (int dir = 0; dir < 8; dir++) { if ((m_goalBoundsMap[r,c].bounds[dir,(int)GoalBoundsEnum.MinRow] > m_goalBoundsMap[r,c].bounds[dir,(int)GoalBoundsEnum.MaxRow]) && (m_goalBoundsMap[r,c].bounds[dir,(int)GoalBoundsEnum.MinCol] > m_goalBoundsMap[r,c].bounds[dir,(int)GoalBoundsEnum.MaxCol])) { // Use INVALID_GOAL_BOUNDS to represent all four values for compression使用INVALID_GOAL_BOUNDS表示所有四个压缩值 VALUE[r,c].value1[dir] = INVALID_GOAL_BOUNDS; } else { for (int minMaxIndex = 0; minMaxIndex < 4; minMaxIndex++) { VALUE[r, c].value2[dir, minMaxIndex] = m_goalBoundsMap[r, c].bounds[dir, minMaxIndex]; } }
后续还有很多工作,出现了问题一定要及时记录。
相关文章推荐
- JumpPointSearchPlus with GoalBounding 学习笔记2
- JumpPointSearchPlus with GoalBounding 学习笔记1
- JumpPointSearchPlus with GoalBounding 学习笔记1
- JumpPointSearchPlus with GoalBounding 学习笔记
- ES权威指南[官方文档学习笔记]-11 search with query dsl
- 深度学习入门笔记:Fast Image Search with Deep Convolutional Neural Networks and Efficient Hashing Codes
- Entity Framework with MySQL 学习笔记一(关系整理版)
- Entity Framework with MySQL 学习笔记一(拦截)
- 【C Prime Plus】学习笔记,Chapter 10,数组和指针之一
- 【C Prime Plus】学习笔记,Chapter 10,数组和指针之四
- Sharepoint学习笔记---Linq to Sharepoint--另一种生成Entity classes for sharepoint site的方法
- openerp学习笔记 视图继承(tree、form、search)
- 【论文学习笔记】Face Recognition with Learning-based Descriptor
- C Primer Plus 学习笔记系列之(三)
- 【学习笔记】C++primer plus 13.继承
- ActionBarSherlock的学习笔记(四) ------------ ActionBarSherlock中的搜索及SearchView的使用
- [C++ Primer Plus]学习笔记--C++内联函数
- Professional Java Development with the Spring Framework学习笔记(1) - JdbcTemplate
- C++ Primer Plus学习笔记之STL函数对象
- oracle10g 学习笔记---sql*plus常用命令1