Improve scale matrix computation

This commit is contained in:
Aitor 2023-03-14 11:24:15 +01:00
parent 4eeef41ed4
commit b9559d99da

View file

@ -187,10 +187,11 @@
(defn scale-matrix (defn scale-matrix
([pt center] ([pt center]
(-> (matrix) (let [sx (dm/get-prop pt :x)
(multiply! (translate-matrix center)) sy (dm/get-prop pt :y)
(multiply! (scale-matrix pt)) cx (dm/get-prop center :x)
(multiply! (translate-matrix (gpt/negate center))))) cy (dm/get-prop center :y)]
(Matrix. sx 0 0 sy (- cx (* cx sx)) (- cy (* cy sy)))))
([pt] ([pt]
(assert (gpt/point? pt)) (assert (gpt/point? pt))
(Matrix. (dm/get-prop pt :x) 0 0 (dm/get-prop pt :y) 0 0))) (Matrix. (dm/get-prop pt :x) 0 0 (dm/get-prop pt :y) 0 0)))