Перейти к содержанию

Спиралевидные карты

#55
Переписал программу для расчета дуг различного радиуса (которые нужны для рисования этих самых дуг на карте "Heroes III").
Вариант под DOS переделал под Windows.
/*   p1
Язык Visual C++ 6.0
Консольное приложение
Радиус */

#include
#include

main ()
{
int a, b, c, d;
FILE *g;

/* a - радиус, для которого ведётся расчёт
b - максимальное значение, для которого считается квадратный корень
c - счётчик
d - рассчитанное значение границы окружности */

g = fopen ("1.txt", "w");
for (a = 1; a < 61; a++) /* внешний радиус 1/8 окружности */
{
b = (int) (a / sqrt (2) + 2); /* верхняя граница расчётов */
fprintf (g, "r = %i\n", a);
for (c = 0; c < b; c++)
{
if (c == a) break;
d = (int) (sqrt (a * a - c * c - .0001) + 1);
if (d < c) break;
if (d == a) continue;
fprintf (g, "%i - %i\n", c, d);
}

fprintf (g, "\n");
}

fclose (g);
return 0;
}
Вложения 1
1 файл • Общий размер: 13,7 KB