【发布时间】:2014-01-23 04:13:44
【问题描述】:
我需要编写一个函数来查找给定坐标的后继。我的后继者是指 3 种:水平、垂直和对角线。
水平很简单:将坐标的行号与下一个的行号匹配,它是该坐标的水平后继。
垂直:将坐标的列号与下一个的列号相同匹配 一个并且确定它是否是垂直继任者
对角线:不确定。一个正方形只有两个对角线,所以如果我的坐标在正方形的对角线上,我需要先验证这一点,如果是,那么我需要找到它的后继者。我该怎么做?
1) verify a point is on the diagonal of a square? and
2) If it is on the diagonal find its successor?
例如在这个网格中:
00, 01, 02, 03, 04, 05, 06, 07, 08
10, 11, 12, 13, 14, 15, 16, 17, 18
20, 21, 22, 23, 24, 25, 26, 27, 28
30, 31, 32, 33, 34, 35, 36, 37, 38
40, 41, 42, 43, 44, 45, 46, 47, 48
50, 51, 52, 53, 54, 55, 56, 57, 58
60, 61, 62, 63, 64, 65, 66, 67, 68
70, 71, 72, 73, 74, 75, 76, 77, 78
80, 81, 82, 83, 84, 85, 86, 87, 88
谢谢
【问题讨论】:
-
你在问什么?如果你给我 (x,y),我只返回 (x+1,y) 作为水平后继, (x,y+1) 作为垂直后继, (x+1,y+1) 作为对角线。
-
很抱歉给您带来了困惑。我的意思是问有没有一种方法可以在不遍历整个网格的情况下找到它,无论任意点是否在正方形的对角线上?
-
好吧,别管我的坏事。这是漫长的一天,我想太多了。非常抱歉这个愚蠢的问题:(
标签: algorithm datagrid geometry computational-geometry coordinate-systems