Direction, and color
Colin Holgate
coiin at verizon.net
Mon Dec 15 23:18:29 EST 2014
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.
More information about the use-livecode
mailing list