Direction, and color

Mike Bonner bonnmike at gmail.com
Mon Dec 15 23:33:08 EST 2014


Holy crap, I think I get it.

On Mon, Dec 15, 2014 at 9:18 PM, Colin Holgate <coiin at verizon.net> wrote:
>
> On Dec 15, 2014, at 11:07 PM, Mike Bonner <bonnmike at gmail.com> wrote:
>
> >I have a chance of understanding) is to determine if an angle falls
> between
> say, red and green, find the ratio of the distances to each, and use that
> as a factor of 255 to create the color.
>
>
> That is exactly what my code is doing. There are several numbers in the
> code that help cheat towards an easy solution. I’ll talk through a few of
> those lines:
>
>    repeat with a = 1 to 315
>       new graphic
>       set the width of graphic a to 10
>       set the height of graphic a to 10
>       put (a-1)/50 into ang
>
> This just gives PI * 100 (roughly) objects spread over a 2*PI range, to
> draw the circle of graphics.
>
> function getred val
>    if val > PI then put 2*PI - val into val
>    put abs(val) into val
>    return round(max(0,(2/3*Pi - val)/(2/3*PI)) * 255)
> end getred
>
> 120 degrees is 2/3PI. I take the angle we’re at and make it be in the
> range of -PI to +PI, and then take the absolute value of that. I subtract
> the angle from 2/3*PI, to find out how far from zero we are. If it’s more
> than 120 degrees, the max(0, takes care of it. The divide by 2/3*PI makes
> the results be in the range 0-1, which gets multiplied by 255.
>
> function getgreen val
>    subtract 2/3*PI from val
>    if val > PI then put 2*PI - val into val
>    put abs(val) into val
>    return round(max(0,(2/3*Pi - val)/(2/3*PI)) * 255)
> end get green
>
> I just add 2/3* PI or 4/3*PI to offset the green and blue angles, so that
> the math becomes just the same as it was for red.
>
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>



More information about the use-livecode mailing list