Сфера. как её нарисовать?
пытаюсь нарисовать сферу.
Делал по этой формуле
вот код :
for (j = 0; j <= q; j++)
{
for (i = 0; i <= p; i++)
{
vertices[k++] = R * cos((float)j /q * PI) * sin(2.0 * (float)i / p * PI);
vertices[k++] = R * sin((float)j /q * PI) * sin(2.0 * (float)i / p * PI);
vertices[k++] = R * cos((float)j /q * PI);
}
}
вот что я получил:
Ответы (1 шт):
Автор решения: EOF
→ Ссылка
Сравнивая Ваш код с формулой можно заметить, что ошибка кроется в первой или последней строке вычислений. Если в первой строке, то необходимо заменить sin на cos, а cos на sin. Т.е. строка
vertices[k++] = R * cos((float)j /q * PI) * sin(2.0 * (float)i / p * PI);
должна иметь вид
vertices[k++] = R * sin((float)j /q * PI) * cos(2.0 * (float)i / p * PI);
Если же в последней, то заменить
vertices[k++] = R * cos((float)j /q * PI);
на
vertices[k++] = R * cos(2.0 * (float)i / p * PI);

