Gradient.sweep constructor

Gradient.sweep(
  1. Offset center,
  2. List<Color> colors, [
  3. List<double>? colorStops,
  4. TileMode tileMode = TileMode.clamp,
  5. double startAngle = 0.0,
  6. double endAngle = math.pi * 2,
  7. Float64List? matrix4,
])

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);
}