Gradient.sweep constructor
Creates a sweep gradient centered at center
that starts at startAngle
and ends at endAngle
.
startAngle
and endAngle
should be provided in radians, with zero
radians being the horizontal line to the right of the center
and with
positive angles going clockwise around the center
.
If colorStops
is provided, colorStops[i]
is a number from 0.0 to 1.0
that specifies where color[i]
begins in the gradient. If colorStops
is
not provided, then only two stops, at 0.0 and 1.0, are implied (and
color
must therefore only have two entries). Stop values less than 0.0
will be rounded up to 0.0 and stop values greater than 1.0 will be rounded
down to 1.0. Each stop value must be greater than or equal to the previous
stop value. Stop values that do not meet this criteria will be rounded up
to the previous stop value.
The behavior before startAngle
and after endAngle
is described by the
tileMode
argument. For details, see the TileMode enum.
If center
, colors
, tileMode
, startAngle
, or endAngle
are null,
or if colors
or colorStops
contain null values, this constructor will
throw a NoSuchMethodError.
If matrix4
is provided, the gradient fill will be transformed by the
specified 4x4 matrix relative to the local coordinate system. matrix4
must
be a column-major matrix packed into a list of 16 values.
Implementation
Gradient.sweep(
Offset center,
List<Color> colors, [
List<double>? colorStops,
TileMode tileMode = TileMode.clamp,
double startAngle = 0.0,
double endAngle = math.pi * 2,
Float64List? matrix4,
]) : assert(_offsetIsValid(center)),
assert(startAngle < endAngle),
assert(matrix4 == null || _matrix4IsValid(matrix4)),
super._() {
_validateColorStops(colors, colorStops);
final Float32List colorsBuffer = _encodeWideColorList(colors);
final Float32List? colorStopsBuffer = colorStops == null ? null : Float32List.fromList(colorStops);
_constructor();
_initSweep(center.dx, center.dy, colorsBuffer, colorStopsBuffer, tileMode.index, startAngle, endAngle, matrix4);
}