transforms — 2D-трансформації

Функції для роботи з 2D-трансформаціями (обертання, масштабування тощо).

Приклад:

1let t = transforms.new();
2t = transforms.rotate(t, 45);
3t = transforms.scale(t, 2, 2);
4display.draw_image_transformed(image, 100, 100, t);
5transforms.delete(t);

Функції

transforms.new()

Створює нову одиничну трансформацію.

Повертає:

Об’єкт трансформації {pointer}.

Тип повернення:

object

transforms.rotate(transform, angle)

Повертає нову трансформацію, повернуту на заданий кут.

Arguments:
  • transform (object()) – Вхідна трансформація.

  • angle (number()) – Кут обертання у градусах.

Повертає:

Нова трансформація.

Тип повернення:

object

transforms.scale(transform, sx, sy)

Повертає нову трансформацію, масштабовану по осях X та Y.

Arguments:
  • transform (object()) – Вхідна трансформація.

  • sx (number()) – Масштаб по X.

  • sy (number()) – Масштаб по Y.

Повертає:

Нова трансформація.

Тип повернення:

object

transforms.multiply(transform, other)

Повертає добуток двох трансформацій.

Arguments:
  • transform (object()) – Перша трансформація.

  • other (object()) – Друга трансформація.

Повертає:

Нова трансформація (t1 × t2).

Тип повернення:

object

transforms.inverse(transform)

Повертає обернену трансформацію.

Arguments:
  • transform (object()) – Вхідна трансформація.

Повертає:

Обернена трансформація.

Тип повернення:

object

transforms.vtransform(transform, x, y)

Застосовує трансформацію до точки (x, y).

Arguments:
  • transform (object()) – Трансформація.

  • x (number()) – Координата X.

  • y (number()) – Координата Y.

Повертає:

Масив [x, y] з трансформованими координатами.

Тип повернення:

Array

transforms.get(transform)

Повертає матрицю трансформації 2×2.

Arguments:
  • transform (object()) – Трансформація.

Повертає:

Масив [[a, b], [c, d]].

Тип повернення:

Array

transforms.set(transform, matrix)

Встановлює матрицю трансформації 2×2.

Arguments:
  • transform (object()) – Трансформація.

  • matrix (Array()) – Масив [[a, b], [c, d]].

transforms.delete(transform)

Звільняє пам’ять, виділену для трансформації.

Arguments:
  • transform (object()) – Трансформація для видалення.