Я не могу воспроизвести вашу проблему с помощью минимального сценария:
$X = Read-Host 'Enter your text'
Write-Host $x
Pause
При выполнении из контекстного меню «Запуск с Powershell» сценарий читает с хоста и записывает его без проблем. Возможно, в пути к скрипту указан недопустимый символ. Попробуйте добавить паузу в начале и в цикле, чтобы просмотреть ошибки. Также попробуйте запустить его из командной строки Powershell, а не ISE.
Вы могли или сделать это как это:
ZOOMSQRT = sqrt(ZOOM);
glScalef(1.0f/ZOOMSQRT, 1.0f/ZOOMSQRT, 1);
glScalef(1.0f/ZOOMSQRT, 1.0f/ZOOMSQRT, 1);
или используйте glPushMatrix/glPopMatrix для восстановления исходной матрицы перед изменением масштаба:
glPushMatrix();
glScalef(ZOOM, ZOOM, 1);
[do whatever you like here...]
glPopMatrix(); // now it's at normal scale again
[do other things here...]
Можно просто сохранить матрицу проекции. glPushMatrix (), glScalef ()..., glPopMatrix ()
Используйте glPushMatrix () перед Вашим первым glScalef () для продвижения матрицы текущей модели на стек, и затем glPopMatrix (), когда Вы хотите возвратить исходный масштаб, тот путь, там не будут никакие погрешности округления, поскольку нет никаких сделанных вычислений.
Сохраните предыдущий размер где-нибудь, скажите в стеке и использовании это.
(анимация перехода назад к предыдущему масштабированию, панорамированию и вращается, установка довольно забавна вместо того, чтобы масштабировать),