Class RadialGradient
public sealed record RadialGradient : Gradient, ITextPaint, IEquatable<Paint>, IEquatable<Gradient>, IEquatable<RadialGradient>
- Inheritance
-
RadialGradient
- Implements
- Inherited Members
Examples
using (RasterCanvas<Rgba8> canvas = raster.CreateCanvas())
{
// Two colors along a line; past the ends the end colors repeat (TileMode.Clamp).
canvas.FillRect(new RectF(0, 0, 200, 100), new LinearGradient(new Vector2(0, 0), new Vector2(200, 0), new RgbaF32(0.1f, 0.3f, 0.9f, 1), new RgbaF32(1, 0.8f, 0.2f, 1)));
// Several stops, mixed in Oklab for even midpoints, repeating every 40 pixels.
canvas.FillRect(new RectF(200, 0, 200, 100), new LinearGradient(
new Vector2(200, 0),
new Vector2(240, 0),
new GradientStop(0, new Rgba8(230, 40, 60, 255)),
new GradientStop(0.5f, new Rgba8(250, 210, 60, 255)),
new GradientStop(1, new Rgba8(230, 40, 60, 255)))
{
Tile = TileMode.Repeat,
Interpolation = GradientInterpolation.Oklab,
});
// A radial gradient stretched into an ellipse by its local matrix, and a sweep around a center.
canvas.FillOval(new RectF(10, 110, 180, 80), new RadialGradient(Vector2.Zero, 1, new RgbaF32(1, 1, 1, 1), new RgbaF32(0, 0.4f, 0.2f, 1))
{
LocalMatrix = Matrix3x2.CreateScale(90, 40) * Matrix3x2.CreateTranslation(100, 150),
});
canvas.FillCircle(new Vector2(300, 150), 45, new SweepGradient(
new Vector2(300, 150),
new GradientStop(0, new Rgba8(255, 0, 0, 255)),
new GradientStop(0.5f, new Rgba8(0, 0, 255, 255)),
new GradientStop(1, new Rgba8(255, 0, 0, 255))));
}
Constructors
RadialGradient(Vector2, float, RgbaF32, RgbaF32)
Initializes a new instance of the RadialGradient class from one color at the center to another at the radius.
public RadialGradient(Vector2 center, float radius, RgbaF32 centerColor, RgbaF32 edgeColor)
Parameters
centerVector2The center.
radiusfloatWhere t is 1.
centerColorRgbaF32The color at the center.
edgeColorRgbaF32The color at the radius.
RadialGradient(Vector2, float, params ReadOnlySpan<GradientStop>)
Initializes a new instance of the RadialGradient class.
public RadialGradient(Vector2 center, float radius, params ReadOnlySpan<GradientStop> stops)
Parameters
centerVector2The center, in paint coordinates.
radiusfloatWhere t is 1; 0 gives a gradient with no extent.
stopsReadOnlySpan<GradientStop>The stops; at least one.
Exceptions
- ArgumentException
The center is not finite, or there are no stops.
- ArgumentOutOfRangeException
radiusis negative or not finite.
Properties
Center
Gets the center, in paint coordinates.
public Vector2 Center { get; init; }
Property Value
Exceptions
- ArgumentException
The point is not finite.
Radius
Gets the radius, where t is 1.
public float Radius { get; init; }
Property Value
Exceptions
- ArgumentOutOfRangeException
The value is negative or not finite.