2015-03-22 21:26 GMT+01:00 Aliaksei Syrel <[email protected]>:

>
> On Sun, Mar 22, 2015 at 8:17 PM, Nicolai Hess <[email protected]> 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
>

Reply via email to