Начал учить канвас и заново школьную геометрию, так как я ее прогуливал и не знаю вообще.
Пишу свой велосипед похожий на
fabricjs
Все получается, все круто работает, все не сложно, кроме трансформаций. Я вообще не понимаю как описать логику изменения трансформаций, когда вешаю события на движение мыши при зажатых контролах для scale, transform, skew, rotate...
Трансформации меня тормозят, это единственное с чем я не могу справиться.
Поделитесь пожалуйста ссылками на ресурсы, если существуют такие, с примерами, как трансформировать объекты с помощью мыши.
К примеру я не понимаю, на сколько нужно сместить translateX, translateY после изменения скейла, чтобы объект остался в в изначальной центральной точке. к примеру:
изначальная транфсормация такая - 1, 0, 0, 1, 0, 0
устанавливаю такую транфсормацию - setTransform(1.5, 0, 0, 1.5, 0, 0)
1.5 это скейл, а последние 2 параметра это translateX/Y
Так вот, мне не понятно на сколько нужно изменить translateX/Y чтобы объект остался в своей центральной точке.
Это только один пример, а ведь есть еще и rotate, для которого нужно еще изменять skew, trasnlate....
Я понимаю что это сложно, но я хочу учиться, мне интересно, но не могу найти ресурсы, где можно изучить реальные примеры таких обработчиков.