Если вы хотите панорамировать объект, вы можете сделать это с помощью векторной математики.
Пример:
new Vector3 lookAt = ...;
new Vector3 offset = ...;
cameraTransform.LookAt(lookAt + offset);
, если вы хотите изменить между движениями панорамирования и вращение, для этого вы можете использовать statemachine.
switch (state)
{
case CHANGEPAN:
// do something
break;
case CHANGEROT:
// do something
break;
}
во время панорамирования, если вы вообще не хотите поворачивать камеру, вам нужно сделать эквивалентный перевод в положение камеры. Вы можете сделать это также с векторной математикой, так как положение в преобразовании - это просто вектор.
Ваш формат printf неправильный и вызывает UB.
Абстрагируясь от математической логики вашей функции.
void sqrtNR(double num)
{
printf ("\nnum: %f\n", num);
x = num;
printf ("x: %f\n", x);
while(var < fabs(f(x,num))
{
x = x - ( f(x,num)/g(x,num) );
}
return x;
}
Вы также должны поместить параметры макроса в круглые скобки