Задать вопрос
EnDeRJaY
@EnDeRJaY
cout >> "Hello World!" >> endl;

Какое выражение нужно для ToRadian?

Есть одна функция. Зовут её ToRadian(). Сидела смирно пре смирно, но решила выделится при работе с камерой.

Конструкция виновника сия торжества
#define ToRadian(x) ((x) * M_PI / 180.0f)

Код, на который бугуртится компилятор:
void Matrix4f::InitRotateTransform(float RotateX, float RotateY, float RotateZ)
{
	Matrix4f rx, ry, rz;

	const float x = ToRadian(RotateX);
	const float y = ToRadian(RotateY);
	const float z = ToRadian(RotateZ);

	rx.m[0][0] = 1.0f; rx.m[0][1] = 0.0f; rx.m[0][2] = 0.0f; rx.m[0][3] = 0.0f;
	rx.m[1][0] = 0.0f; rx.m[1][1] = cosf(x); rx.m[1][2] = -sinf(x); rx.m[1][3] = 0.0f;
	rx.m[2][0] = 0.0f; rx.m[2][1] = sinf(x); rx.m[2][2] = cosf(x); rx.m[2][3] = 0.0f;
	rx.m[3][0] = 0.0f; rx.m[3][1] = 0.0f; rx.m[3][2] = 0.0f; rx.m[3][3] = 1.0f;

	ry.m[0][0] = cosf(y); ry.m[0][1] = 0.0f; ry.m[0][2] = -sinf(y); ry.m[0][3] = 0.0f;
	ry.m[1][0] = 0.0f; ry.m[1][1] = 1.0f; ry.m[1][2] = 0.0f; ry.m[1][3] = 0.0f;
	ry.m[2][0] = sinf(y); ry.m[2][1] = 0.0f; ry.m[2][2] = cosf(y); ry.m[2][3] = 0.0f;
	ry.m[3][0] = 0.0f; ry.m[3][1] = 0.0f; ry.m[3][2] = 0.0f; ry.m[3][3] = 1.0f;

	rz.m[0][0] = cosf(z); rz.m[0][1] = -sinf(z); rz.m[0][2] = 0.0f; rz.m[0][3] = 0.0f;
	rz.m[1][0] = sinf(z); rz.m[1][1] = cosf(z); rz.m[1][2] = 0.0f; rz.m[1][3] = 0.0f;
	rz.m[2][0] = 0.0f; rz.m[2][1] = 0.0f; rz.m[2][2] = 1.0f; rz.m[2][3] = 0.0f;
	rz.m[3][0] = 0.0f; rz.m[3][1] = 0.0f; rz.m[3][2] = 0.0f; rz.m[3][3] = 1.0f;

	*this = rz * ry * rx;
}


Ладно бы, он написал чего ему надо. но он просто требует выражение, а какое не понятно. M_PI объявлен, так что он отпадает. Также при компиляции оно выдаёт синтаксическую ошибку:"=". Что надо сделать я не понимаю. Помогите
  • Вопрос задан
  • 209 просмотров
Подписаться 2 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
M_PI объявлен, так что он отпадает.

Но ты для чистоты эксперимента всё-таки замени ToRadian вот на это и посмотри, отпадает или не отпадает:
#define ToRadian(x) ((x) * 3.141593f / 180.0f)

Также при компиляции оно выдаёт синтаксическую ошибку:"=".

На какую строку ругается?
Ответ написан
У Вас нет функции, у Вас - макрос.

И приложите пожалуйста тескт ошибки - это поможет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы