Учитывая точку и плоскость, как мне перевести точку, чтобы она соответствовала плоскости, когда плоскость масштабируется без масштабирования точки?

0

Для плоскости с матрицей, которая и переводит ее, и масштабирует ее, у меня есть оверлейная точка, которая может только переводить, но не масштабироваться и должна оставаться в одной точке плоскости. Если плоскость переводится с использованием следующего преобразования, например:

matrix(1,0,0,1,33,33);

Я могу просто совместить это с точки зрения.

Но если матрица выглядит так:

matrix(1.5,0,0,1.5,33,33);

Я не могу просто сопоставить его, потому что размер точки будет масштабироваться.

Как найти перевод, который будет перемещать точку в соответствии с плоскостью без масштабирования точки? Извините, если это кажется очевидным, я немного математически оспаривается.

  • 0
    Это для Mathematica, который является конкретным языком программирования, который я не использую.
  • 0
    упс, ха-ха, я имел в виду, что вы должны проверить обмен математическим стеком, поскольку ваша проблема, кажется, связана скорее с математикой, чем с кодированием. math.stackexchange.com
Теги:
math
matrix

1 ответ

0

Точка не имеет размера, это просто позиция. Масштаб + поворот - это преобразование между координатами, поэтому масштабирование на самом деле является масштабированием расстояний до начала координат, а не самого объекта. Для прямоугольника это означает применение преобразования к каждому углу. Для точки это означает применение (цельного) преобразования к точке.

Что заставляет вас думать, что этот вопрос будет масштабироваться?

Если вы просто хотите применить преобразование вращения, а не преобразование масштабирования, то при условии, что ваше определение матрицы является матрицей CSS (https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function), то список - это a, b, c, d, tx, ty. Вращение задается как

[cos(a) -sin(a) sin(a) cos(a) 0 0]

Поэтому, если вы используете пару a, b и c, d, вы можете нормализовать вычисление угла поворота самостоятельно без масштабирования.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню