Время отображения вопроса R чтения из Excel

В компьютерной графике преобразования представлены матрицами. Если вы хотите что-то вращаться, вы умножаете все его вершины (вектор) на матрицу вращения. Хотите, чтобы он переместился? Умножить на матрицу перевода и т. Д.

tl; dr: Вы не можете описать перевод по оси z с помощью 3D-матриц и векторов. Вам нужно как минимум еще 1 размер, поэтому они просто добавили фиктивный размер w. Но вещи ломаются, если это не 1, поэтому держите его в 1: P.


. В любом случае, теперь мы начнем с быстрого обзора по умножению матрицы:

Вы в основном положили x выше a, y выше b, z выше c. Умножьте весь столбец на переменную, которую вы только что переместили, и суммируйте все в строке.

Итак, если вам нужно перевести вектор, вам нужно что-то вроде:

Посмотрите, как x и y теперь переведены на az и bz? Это довольно неудобно:

  1. Вам нужно было бы объяснить, насколько велика z, когда вы перемещаете вещи (что, если z было отрицательным? Вам пришлось бы двигаться в противоположных направлениях Это тяжело, если вы просто хотите переместить что-то на дюйм ...)
  2. Вы не можете двигаться по оси z. Вы никогда не сможете летать или уходить в подполье

Но если вы всегда можете убедиться, что z = 1:

Теперь гораздо яснее, что эта матрица позволяет вам перемещаться по плоскости xy значениями a и b. Только проблема в том, что вы концептуально левитируете все время, и вы все равно не можете идти вверх или вниз. Вы можете перемещаться только в 2D.

Но вы видите рисунок здесь? С 3D-матрицами и 3D-векторами вы можете описать все основные движения в 2D. Итак, что, если бы мы добавили 4-мерное измерение?

Выглядит хорошо. Если мы постоянно сохраняем w = 1:

Там мы идем, теперь вы получаете перевод по всей оси 3. Это то, что называется однородными координатами.

Но что, если бы вы делали большие и большие; сложная трансформация, приводящая к w != 1, и нет никакого способа обойти это? OpenGL (и в основном любая другая система CG, я думаю) будет выполнять так называемую нормализацию: разделите результирующий вектор на компонент w. Я не знаю достаточно, чтобы точно сказать, почему (потому что масштабирование является линейным преобразованием?), Но оно имеет благоприятные последствия (может использоваться в перспективных преобразованиях). В любом случае, матрица перевода будет выглядеть так:

И вот вы посмотрите, как каждый компонент скроется w, то это переводится? Вот почему w управляет масштабированием.

1
задан StudentFlyer 20 January 2019 в 06:07
поделиться

1 ответ

У вас есть правильный ответ, просто умножьте его на 24, если вы хотите сохранить время отдельно, или добавьте его к соответствующей дате, если вы хотите использовать дату / время, и в любом подходящем формате.

0
ответ дан pnuts 20 January 2019 в 06:07
поделиться
Другие вопросы по тегам:

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