class:: Gradient summary:: A linear color fade between two colors categories:: GUI>Accessories related:: Classes/Color, Classes/HiliteGradient description:: note:: The use of Gradient is strong::not supported yet::. When Gradient is used in place of Color, the average gradient color will be used instead. :: classmethods:: method:: new argument:: color1 An instance of link::Classes/Color::. argument:: color2 An instance of link::Classes/Color::. argument:: direction code::\h:: or code::\v:: for horizontal and vertical respectively. Default value is code::\h::. argument:: steps The resolution of the gradient. Default value is 64. instancemethods:: method:: at Retrieve the colour at position code::pos::, typically a value between zero and one. code::at(0):: is code::color1::, and code::at(1):: is code::color2::. argument:: pos examples:: code:: // basic usage ( w = Window.new.front; w.view.background = Gradient(Color.yellow,Color.white); ) // change direction and resolution ( w = Window.new.front; w.view.background = Gradient(Color.red,Color.white,\v, 5); ) // almost unnoticeable variations can be pleasant ( w = Window.new.front; v = CompositeView(w, Rect(50,50,300,300)); c = Color.rand; d = c.vary(0.15); v.background = Gradient(c, d, \v); [c, d].postln ) ( var w, k, c, d, e, c1, c2, f, g; w = Window.new.front; k = Slider2D(w, Rect(50,50,300,300)); f = { c = Color.rand; d = c.vary(0.5); e = d.vary(0.5); }; g = { c1 = d.hueBlend(e, k.y).round(0.01); c2 = c.hueBlend(e, k.x).round(0.01); k.background = Gradient(c1, c2, \v) }; f.value; g.value; k.action = g; k.mouseUpAction = { [c1, c2].postln }; k.keyDownAction = f; // hit any key for new color ) // an example using gradient indirectly to update window colour ( w=Window.new.front; g = Gradient(Color.red,Color.green); Task{ (0, 0.01 .. 1).do{|pos| w.view.background = g.at(pos); 0.01.wait; }; }.play(AppClock) ) ::