以1个单位块

时间:2015-12-07 14:22:58

标签: sql rotational-matrices

这是一个奇怪的问题,但它带来了一个有趣的挑战;我一直在研究百万美元HTML矩阵(1,000 x 1,000)的旧概念,并且对更大的立方体的概念更感兴趣[就像Rubik的立方体但没有轴的主体]并试图弄清楚如何做它在SQL中,以便从中心订购。

中心块将是0,0,0然后需要编程围绕它的块的坐标(-1,0,0; ​​-1,-1,0;等等等等第四)基本上扩展一层/层一层,使得从第一个核心块到第二个核心块的跳跃由26个块及其坐标组成,但我想我可以生成27个然后消除已经存在的块存储库表。

我想我正在那里做点什么,但关键是我希望把它们安排在另一张桌子上,这样你就可以通过触摸它来跳到立方体中的下一个块,就像三个维度螺旋。

任何建议都会很棒,我认为我现在只是搞乱创建嵌套立方体的概念,这不是最优雅的解决方案。

1 个答案:

答案 0 :(得分:0)

声明@start int = 0,@ low int

声明@coord表(Coord int IDENTITY(1,1),x int,y int,z int) 声明@coord2表(x int,y int,z int) 声明@dimensions表(pos int)

而@start< = 3 开始     选择@low = @start * -1

delete from @coord2
delete from @dimensions

while @low <= @start
begin
    insert into @dimensions select @low
    select @low = @low + 1
end

insert into @coord (x,y,z)
select * from (select d.pos as x, e.pos as y, f.pos as z from @dimensions d cross join @dimensions e cross join @dimensions f) as a 
where not exists (select * from @coord c WHERE a.x = c.x and a.y = c.y and a.z = c.z)

select @start = @start + 1

从@coord

中选择*