@isgenderli

Как изменить размер (scale) объекта используя перетаскивания в js canvas?

Добрый день, всем!
Уже пятый день ломаю голову над задачей, но не могу решить.
Суть задачи: изменить scale объекта, в данном случае фотографии в js canvas используя drag.
В положительную сторону всё работает, в отрицательную нет. Я даже знаю, почему. Но не могу исправить.
Scale(x,y) считаю так:
x = оригинальная ширина / измененная ширина.
y = оригинальная высота / измененная высота.
Оригинальные данные = активный угол объекта (который был кликнут) - противоположный угол.
Измененные данные = активный угол объекта (который был кликнут) - противоположный угол + скорость перетаскивания (в данном случае +-1).
Всё ок, пока Оригинальные (либо Измененные) данные не равны 0. В данном случае дает NaN, Infinity и тд.
Что делать? Тут даже js знать не надо, чисто логика + математика. Но не могу найти решение...
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
Очевидно же, что не нужно использовать преобразование функции, если аргументы содержат недопустимые значения. Делайте контроль допустимых значений перед применением функции. Если аргумент один - то у вас два состояния работы функции: обычное, и вырожденное. Если два аргумента, то четыре состояния: 1) обычное по X, обычное по Y; 2) обычное по X, вырожденное по Y; 3) вырожденное по X, обычное по Y; 4) вырожденное по X, вырожденное по Y.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы