меня это C# код для итерации через сетку во внутренней спирали, как это:Внутрь спиральный алгоритм не работает
1 2 3
8 9 4
7 6 5
Вот код, но есть что-то не так с ним, по какой-то причине занимая гораздо больше времени, чем ожидалось. Кто-нибудь знает, почему это происходит?
static void create_spiral_img(int width, int height)
{
Bitmap img = new Bitmap(width, height);
Graphics graph = Graphics.FromImage(img);
int x = 0;
int y = 0;
int size = width * height;
int max = size;
int count = 1;
int i, j;
while (size > 0)
{
for (i = y; i <= y + size - 1; i++)
{
draw_pixel(count++, x, i, graph);
}
for (j = x + 1; j <= x + size - 1; j++)
{
draw_pixel(count++, j, y + size - 1, graph);
}
for (i = y + size - 2; i >= y; i--)
{
draw_pixel(count++, x + size - 1, i, graph);
}
for (i = x + size - 2; i >= x + 1; i--)
{
draw_pixel(count++, i, y, graph);
}
x = x + 1;
y = y + 1;
size = size - 2;
Console.Write(100 * ((float)(count)/(float)max) + "% ");
}
graph.Dispose();
img.Save("./" + width + "x" + height + "_spiril.png", System.Drawing.Imaging.ImageFormat.Png);
img.Dispose();
}
Существует несколько сотен консольных записей. Я предполагаю, что это может повредить ... –
Если вы создаете это, чтобы загипнотизировать людей, есть намного более простые способы ... Все шутите в сторону, как быстро вы ожидаете, что это исполнится? – Brian
Насколько быстрым является 'draw_pixel'? –