2013-12-22 2 views
-2

Я ищу алгоритм, который помещает числа в спираль, работающие из координат, но это не нормальная спираль, и, следовательно, проблема возникает.Java Spiral Algorithm

нормальная спираль: enter image description here

Я посмотрел на другие вопросы стороны нашли this, чтобы сделать эту спираль.

Но мне нужно сделать спираль, как это: enter image description here

Эта спираль должна быть создана в то же самое было, как на картинке, но она должна быть в состоянии адаптироваться к любой длины и любой ширины. Он может быть квадратным или прямоугольным в любом направлении. Координаты выполняются так, как показано на рисунке слева.

Как бы я это сделал? Все, что я нашел в моих поисках, - это спирали, которые квадратные, а не то, что им после.

+0

Начать с F и сделать стек. – clwhisk

ответ

0

Вопрос не зависит от Java.

1) Начните с любой точки P = (X, Y) и любого направления D = (DX, DY), где один из DX или DY равен нулю, а другой - +1 или -1. Также выберите поворот по часовой стрелке или против часовой стрелки.

2) Затем выполните N шагов в заданном направлении.

3) Поворот направление в принятых вращения

4) У М = 1 шаги в новом направлении

5) Установить N = N + 1

6) Затем сделать N шагов в данном направлении ,

7) Поворот направление вращения взятого

8) Установить М = М = 1

9) 6) Затем сделать M шаги в данном направлении.

10) GOTO (5)

Это грубо. Проверьте ограничения.