interface Pattern
Pattern object for drawing gradients and patterns.
The MGraphics object can create Pattern objects with functions like MGraphics.pattern_create_linear(), MGraphics.pattern_create_radial(), and MGraphics.pattern_create_rgba(). Generally, you use this Pattern object to add color stops and transformations to customize the pattern, then set that pattern as a source before filling a path.
Example
function paint() {
// create a path
mgraphics.rectangle(50, 0, 200, 100);
// create a gradient pattern to fill the shape
var tmp = mgraphics.pattern_create_radial(20, 20, 20, 100, 100, 30);
tmp.add_color_stop_rgba(0, 1, 0, 0, 1);
tmp.add_color_stop_rgba(1, 0, 1, 0, 1);
// set the gradient as a source
mgraphics.set_source(tmp);
// fill the shape
mgraphics.fill();
}
Index
Methods
- add_color_stop_rgba(index, red, green, blue, alpha)
- get_extend()
- get_matrix()
- get_type()
- identity_matrix()
- rotate(angle)
- scale(scale_x, scale_y)
- set_extend(extend_value)
- set_matrix(xx, xy, yx, yy, x0, y0)
- translate(t_x, t_y)
add_color_stop_rgba(index, red, green, blue, alpha)
Add a color stop to a pattern.
Sets a color stop for the pattern. Linear and radial gradients will fade continuously between these color values.
add_color_stop_rgba(
index: number,
red: number,
green: number,
blue: number,
alpha: number,
);
| Name | Type | Description |
|---|---|---|
| index | number | The index of the color stop |
| red | number | The red component of the color stop |
| green | number | The green component of the color stop |
| blue | number | The blue component of the color stop |
| alpha | number | The alpha component of the color stop |
get_extend()
Deprecated
This functionality is not implemented and probably never will be
Get the extend value of the pattern
The extend value determines how the pattern will be drawn to fill extra space. "none" will draw nothing, "reflect" will invert the pattern and continue to draw it as if reflected, "repeat" will start the pattern over and continue to draw, and "pad" will take the last color of the pattern and extend it outward.
get_extend(): "none" | "reflect" | "repeat" | "pad";
| Name | Type | Description |
|---|---|---|
| Return Value | "none" | "reflect" | "repeat" | "pad" |
get_matrix()
Get the current transform matrix for the pattern.
get_matrix(): [number, number, number, number, number, number];
| Name | Type | Description |
|---|---|---|
| Return Value | [number, number, number, number, number, number] | An array containing [xx, xy, yx, yy, x0, y0] values |
get_type()
Get the pattern type
Get the type of the pattern. Values are 0-solid, 1-surface, 2-linear, 3-gradient.
get_type(): 0 | 1 | 2 | 3;
| Name | Type | Description |
|---|---|---|
| Return Value | 0 | 1 | 2 | 3 |
identity_matrix()
Reset the transform matrix to identity (no transformation).
identity_matrix();
rotate(angle)
Adds a rotation to the pattern
rotate(angle: number);
| Name | Type | Description |
|---|---|---|
| angle | number | the rotation angle in radians (counter-clockwise) |
scale(scale_x, scale_y)
Scale the pattern horizontally and vertically
scale(scale_x: number, scale_y: number);
| Name | Type | Description |
|---|---|---|
| scale_x | number | horizontal scaling |
| scale_y | number | vertical scaling |
set_extend(extend_value)
Deprecated
This functionality is not implemented and probably never will be
Set the extend value of the pattern
set_extend(extend_value: "none" | "reflect" | "repeat" | "pad");
| Name | Type | Description |
|---|---|---|
| extend_value | "none" | "reflect" | "repeat" | "pad" | The extend value to set |
set_matrix(xx, xy, yx, yy, x0, y0)
Set the transform matrix for the pattern directly.
set_matrix(
xx: number,
xy: number,
yx: number,
yy: number,
x0: number,
y0: number,
);
| Name | Type | Description |
|---|---|---|
| xx | number | x scaling support |
| xy | number | rotational warping |
| yx | number | rotational warping |
| yy | number | y scaling support |
| x0 | number | x translation |
| y0 | number | y translation |
translate(t_x, t_y)
Translate the current pattern
translate(t_x: number, t_y: number);
| Name | Type | Description |
|---|---|---|
| t_x | number | horizontal translation |
| t_y | number | vertical translation |