Я пытаюсь реализовать и понять, как выполнить простой перевод в GLSL. Чтобы сделать это, я делаю простой тест в Octave, чтобы убедиться, что я понимаю само преобразование.
У меня есть следующий вектор, который представляет 2D-координаты, встроенные в четырехмерный вектор:
candle = [1586266800, 11812, 0, 0]
Это означает, что точка имеет местоположения x=1586266800 and y=11812
.
Я пытаюсь применить перевод, используя следующие значения:
priceBottom = 11800
timestampOrigin = 1586266800
Что означает, что новый источник координат будет x=1586266800
и y=11800
.
Я строю следующую матрицу перевода:
[ 1 0 0 tx ]
[ 0 1 0 ty ]
[ 0 0 1 tz ]
[ 0 0 0 1 ]
translation1 = [1, 0, 0, -timestampOrigin; 0, 1, 0, -priceBottom; 0, 0, 1, 0; 0, 0, 0, 1]
Правильна ли эта матрица? Как мне применить его к вектору?
Я пробовал:
>> candle * translation1
ans =
1.5863e+009 1.1812e+004 0.0000e+000 -2.5162e+018
Что, очевидно, не работает.