2015-03-22 21:26 GMT+01:00 Aliaksei Syrel <alex.syrel@gmail.com>:
On Sun, Mar 22, 2015 at 8:17 PM, Nicolai Hess <nicolaihess@web.de> wrote:
Yes, but I think the operation were defined as the Color class did not contain the alpha value
Exactly
Ah, Ok. In that case I would not use the arithmetic operations at all.
never :)
I wanted to solve the problem without actually solving it :)
In the image there is a general animation class that supports linear interpolation defined as:
(to - from) * delta + from
So it can theoretically work with all objects polymorphic with numbers in sense of math operations. I browsed Color class and surprisingly found that it is polymorphic with Number! What a lucky moment :) However when I tried I failed. Then I realized that color's value can't be negative, so general solution will not work, since (to - from) can't be negative Color.
In that case you may be interested on this issue: 15138 <https://pharo.fogbugz.com/default.asp?15138> inprecise interpolateTo:at: for floats
That is why I had to interpolate each channel separately:
|r g b a|
r := (to red - from red) * delta + from red. g := (to green - from green) * delta + from green. b := (to blue - from blue) * delta + from blue. a := (to alpha - from alpha) * delta + from alpha. ^ Color r: r g: g b: b alpha: a
I don't need math operations with colors anymore :) But having that feature doesn't work we should do something before release ;) That's why issue was opened. Feel free to make slice requests
Cheers, Alex