Encapsulates a 3-by-3 affine matrix that represents a geometric transform. This class cannot be inherited.
matrix A | Rotate 90 degrees |
matrix B | Scale by a factor of 2 in the x direction |
matrix C | Translate 3 units in the y direction |
Public Constructors | |
matrix () | |
Initializes a new instance of the xtd::drawing::drawing_2d::matrix class as the identity matrix. | |
matrix (float m11, float m12, float m21, float m22, float dx, float dy) | |
Initializes a new instance of the xtd::drawing::drawing_2d::matrix class with the specified elements. | |
matrix (const xtd::drawing::rectangle &rect, const std::vector< xtd::drawing::point > &plgpts) | |
Initializes a new instance of the xtd::drawing::drawing_2d::matrix class to the geometric transform defined by the specified rectangle and array of points. | |
matrix (const xtd::drawing::rectangle_f &rect, const std::vector< xtd::drawing::point_f > &plgpts) | |
Initializes a new instance of the xtd::drawing::drawing_2d::matrix class to the geometric transform defined by the specified rectangle and array of points. | |
Public Properties | |
std::vector< float > | elements () const |
Gets an array of floating-point values that represents the elements of this xtd::drawing::drawing_2d::matrix. | |
intptr | handle () const noexcept |
Gets the handle of the matrix. | |
bool | is_identity () const |
Gets a value indicating whether this xtd::drawing::drawing_2d::matrix is the identity matrix. | |
bool | is_invertible () const |
Gets a value indicating whether this xtd::drawing::drawing_2d::matrix is invertible. | |
float | offset_x () const |
Gets the x translation value (the dx value, or the element in the third row and first column) of this xtd::drawing::drawing_2d::matrix. | |
float | offset_y () const |
Gets the y translation value (the dy value, or the element in the third row and second column) of this xtd::drawing::drawing_2d::matrix. | |
Public Methods | |
bool | equals (const xtd::drawing::drawing_2d::matrix &value) const noexcept override |
void | invert () |
Inverts this xtd::drawing::drawing_2d::matrix, if it is invertible. | |
void | multiply (const xtd::drawing::drawing_2d::matrix &matrix) |
Multiplies this xtd::drawing::drawing_2d::matrix by the matrix specified in the matrix parameter, by prepending the specified xtd::drawing::drawing_2d::matrix. | |
void | multiply (const xtd::drawing::drawing_2d::matrix &matrix, xtd::drawing::drawing_2d::matrix_order order) |
Multiplies this xtd::drawing::drawing_2d::matrix by the matrix specified in the matrix parameter, and in the order specified in the order parameter. | |
void | reset () |
Resets this xtd::drawing::drawing_2d::matrix to have the elements of the identity matrix. | |
void | rotate (float angle) |
repend to this xtd::drawing::drawing_2d::matrix a clockwise rotation, around the origin and by the specified angle. | |
void | rotate (float angle, xtd::drawing::drawing_2d::matrix_order order) |
Applies a clockwise rotation of an amount specified in the angle parameter, around the origin (zero x and y coordinates) for this xtd::drawing::drawing_2d::matrix. | |
void | rotate_at (float angle, const xtd::drawing::point_f &point) |
Applies a clockwise rotation to this xtd::drawing::drawing_2d::matrix around the point specified in the point parameter, and by prepending the rotation. | |
void | rotate_at (float angle, const xtd::drawing::point_f &point, xtd::drawing::drawing_2d::matrix_order order) |
Applies a clockwise rotation about the specified point to this xtd::drawing::drawing_2d::matrix in the specified order. | |
void | scale (float scale_x, float scale_y) |
Applies the specified scale vector to this xtd::drawing::drawing_2d::matrix by prepending the scale vector. | |
void | scale (float scale_x, float scale_y, xtd::drawing::drawing_2d::matrix_order order) |
Applies the specified scale vector (scale_x and scale_y) to this xtd::drawing::drawing_2d::matrix using the specified order. | |
void | shear (float scale_x, float scale_y) |
Applies the specified shear vector to this xtd::drawing::drawing_2d::matrix. | |
void | shear (float scale_x, float scale_y, xtd::drawing::drawing_2d::matrix_order order) |
Applies the specified shear vector to this xtd::drawing::drawing_2d::matrix in the specified order. | |
void | transform_points (std::vector< xtd::drawing::point > &points) |
Applies the geometric transform represented by this xtd::drawing::drawing_2d::matrix to a specified array of points. | |
void | transform_points (std::vector< xtd::drawing::point_f > &points) |
Applies the geometric transform represented by this xtd::drawing::drawing_2d::matrix to a specified array of points. | |
void | transform_vectors (std::vector< xtd::drawing::point > &points) |
Applies only the scale and rotate components of this xtd::drawing::drawing_2d::matrix to the specified array of points. | |
void | transform_vectors (std::vector< xtd::drawing::point_f > &points) |
Applies only the scale and rotate components of this xtd::drawing::drawing_2d::matrix to the specified array of points. | |
void | translate (float offset_x, float offset_y) |
Applies the specified translation vector (offset_x and offset_y) to this xtd::drawing::drawing_2d::matrix by prepending the translation vector. | |
void | translate (float offset_x, float offset_y, xtd::drawing::drawing_2d::matrix_order order) |
Applies the specified translation vector (offset_x and offset_y) to this xtd::drawing::drawing_2d::matrix in the specified order. | |
void | vector_transform_points (std::vector< xtd::drawing::point > &points) |
Multiplies each vector in an array by the matrix. The translation elements of this matrix (third row) are ignored. | |
xtd::string | to_string () const noexcept override |
Returns a xtd::string that represents the current object. | |
virtual bool | equals (const object &obj) const noexcept |
Determines whether the specified object is equal to the current object. | |
template<typename object_a_t , typename object_b_t > | |
static bool | equals (const object_a_t &object_a, const object_b_t &object_b) noexcept |
Determines whether the specified object instances are considered equal. | |
Additional Inherited Members | |
Public Member Functions inherited from xtd::object | |
object ()=default | |
Create a new instance of the ultimate base class object. | |
virtual size_t | get_hash_code () const noexcept |
Serves as a hash function for a particular type. | |
virtual type_object | get_type () const noexcept |
Gets the type of the current instance. | |
template<typename object_t > | |
xtd::uptr< object_t > | memberwise_clone () const |
Creates a shallow copy of the current object. | |
Public Member Functions inherited from xtd::iequatable< matrix > | |
virtual bool | equals (const matrix &) const noexcept=0 |
Indicates whether the current object is equal to another object of the same type. | |
Static Public Member Functions inherited from xtd::object | |
template<typename object_a_t , typename object_b_t > | |
static bool | equals (const object_a_t &object_a, const object_b_t &object_b) noexcept |
Determines whether the specified object instances are considered equal. | |
template<typename object_a_t , typename object_b_t > | |
static bool | reference_equals (const object_a_t &object_a, const object_b_t &object_b) noexcept |
Determines whether the specified object instances are the same instance. | |
xtd::drawing::drawing_2d::matrix::matrix | ( | ) |
Initializes a new instance of the xtd::drawing::drawing_2d::matrix class as the identity matrix.
xtd::drawing::drawing_2d::matrix::matrix | ( | float | m11, |
float | m12, | ||
float | m21, | ||
float | m22, | ||
float | dx, | ||
float | dy | ||
) |
Initializes a new instance of the xtd::drawing::drawing_2d::matrix class with the specified elements.
m11 | The value in the first row and first column of the new xtd::drawing::drawing_2d::matrix. |
m12 | The value in the first row and second column of the new xtd::drawing::drawing_2d::matrix. |
m21 | The value in the second row and first column of the new xtd::drawing::drawing_2d::matrix. |
m22 | The value in the second row and second column of the new xtd::drawing::drawing_2d::matrix. |
dx | The value in the third row and first column of the new xtd::drawing::drawing_2d::matrix. |
dy | The value in the third row and second column of the new xtd::drawing::drawing_2d::matrix. |
xtd::drawing::drawing_2d::matrix::matrix | ( | const xtd::drawing::rectangle & | rect, |
const std::vector< xtd::drawing::point > & | plgpts | ||
) |
Initializes a new instance of the xtd::drawing::drawing_2d::matrix class to the geometric transform defined by the specified rectangle and array of points.
rect | A xtd::drawing::rectangle structure that represents the rectangle to be transformed. |
plgpts | An array of three xtd::drawing::point structures that represents the points of a parallelogram to which the upper-left, upper-right, and lower-left corners of the rectangle is to be transformed. The lower-right corner of the parallelogram is implied by the first three corners. |
xtd::drawing::drawing_2d::matrix::matrix | ( | const xtd::drawing::rectangle_f & | rect, |
const std::vector< xtd::drawing::point_f > & | plgpts | ||
) |
Initializes a new instance of the xtd::drawing::drawing_2d::matrix class to the geometric transform defined by the specified rectangle and array of points.
rect | A xtd::drawing::rectangle_f structure that represents the rectangle to be transformed. |
plgpts | An array of three xtd::drawing::point_f structures that represents the points of a parallelogram to which the upper-left, upper-right, and lower-left corners of the rectangle is to be transformed. The lower-right corner of the parallelogram is implied by the first three corners. |
std::vector< float > xtd::drawing::drawing_2d::matrix::elements | ( | ) | const |
Gets an array of floating-point values that represents the elements of this xtd::drawing::drawing_2d::matrix.
|
noexcept |
Gets the handle of the matrix.
bool xtd::drawing::drawing_2d::matrix::is_identity | ( | ) | const |
Gets a value indicating whether this xtd::drawing::drawing_2d::matrix is the identity matrix.
bool xtd::drawing::drawing_2d::matrix::is_invertible | ( | ) | const |
Gets a value indicating whether this xtd::drawing::drawing_2d::matrix is invertible.
float xtd::drawing::drawing_2d::matrix::offset_x | ( | ) | const |
Gets the x translation value (the dx value, or the element in the third row and first column) of this xtd::drawing::drawing_2d::matrix.
float xtd::drawing::drawing_2d::matrix::offset_y | ( | ) | const |
Gets the y translation value (the dy value, or the element in the third row and second column) of this xtd::drawing::drawing_2d::matrix.
void xtd::drawing::drawing_2d::matrix::invert | ( | ) |
Inverts this xtd::drawing::drawing_2d::matrix, if it is invertible.
void xtd::drawing::drawing_2d::matrix::multiply | ( | const xtd::drawing::drawing_2d::matrix & | matrix | ) |
Multiplies this xtd::drawing::drawing_2d::matrix by the matrix specified in the matrix parameter, by prepending the specified xtd::drawing::drawing_2d::matrix.
matrix | The xtd::drawing::drawing_2d::matrix by which this xtd::drawing::drawing_2d::matrix is to be multiplied. |
void xtd::drawing::drawing_2d::matrix::multiply | ( | const xtd::drawing::drawing_2d::matrix & | matrix, |
xtd::drawing::drawing_2d::matrix_order | order | ||
) |
Multiplies this xtd::drawing::drawing_2d::matrix by the matrix specified in the matrix parameter, and in the order specified in the order parameter.
matrix | The xtd::drawing::drawing_2d::matrix by which this xtd::drawing::drawing_2d::matrix is to be multiplied. |
order | The xtd::drawing::drawing_2d::matrix_order that represents the order of the multiplication. |
void xtd::drawing::drawing_2d::matrix::reset | ( | ) |
Resets this xtd::drawing::drawing_2d::matrix to have the elements of the identity matrix.
void xtd::drawing::drawing_2d::matrix::rotate | ( | float | angle | ) |
repend to this xtd::drawing::drawing_2d::matrix a clockwise rotation, around the origin and by the specified angle.
angle | The angle of the rotation, in degrees. |
void xtd::drawing::drawing_2d::matrix::rotate | ( | float | angle, |
xtd::drawing::drawing_2d::matrix_order | order | ||
) |
Applies a clockwise rotation of an amount specified in the angle parameter, around the origin (zero x and y coordinates) for this xtd::drawing::drawing_2d::matrix.
angle | The angle (extent) of the rotation, in degrees. |
order | A xtd::drawing::drawing_2d::matrix_order that specifies the order (append or prepend) in which the rotation is applied to this xtd::drawing::drawing_2d::matrix. |
void xtd::drawing::drawing_2d::matrix::rotate_at | ( | float | angle, |
const xtd::drawing::point_f & | point | ||
) |
Applies a clockwise rotation to this xtd::drawing::drawing_2d::matrix around the point specified in the point parameter, and by prepending the rotation.
angle | The angle (extent) of the rotation, in degrees. |
point | A xtd::drawing::point_f that represents the center of the rotation. |
void xtd::drawing::drawing_2d::matrix::rotate_at | ( | float | angle, |
const xtd::drawing::point_f & | point, | ||
xtd::drawing::drawing_2d::matrix_order | order | ||
) |
Applies a clockwise rotation about the specified point to this xtd::drawing::drawing_2d::matrix in the specified order.
angle | The angle (extent) of the rotation, in degrees. |
point | A xtd::drawing::point_f that represents the center of the rotation. |
order | A xtd::drawing::drawing_2d::matrix_order that specifies the order (append or prepend) in which the rotation is applied. |
void xtd::drawing::drawing_2d::matrix::scale | ( | float | scale_x, |
float | scale_y | ||
) |
Applies the specified scale vector to this xtd::drawing::drawing_2d::matrix by prepending the scale vector.
scale_x | The value by which to scale this xtd::drawing::drawing_2d::matrix in the x-axis direction. |
scale_y | The value by which to scale this xtd::drawing::drawing_2d::matrix in the y-axis direction. |
void xtd::drawing::drawing_2d::matrix::scale | ( | float | scale_x, |
float | scale_y, | ||
xtd::drawing::drawing_2d::matrix_order | order | ||
) |
Applies the specified scale vector (scale_x and scale_y) to this xtd::drawing::drawing_2d::matrix using the specified order.
scale_x | The value by which to scale this xtd::drawing::drawing_2d::matrix in the x-axis direction. |
scale_y | The value by which to scale this xtd::drawing::drawing_2d::matrix in the y-axis direction. |
order | A xtd::drawing::drawing_2d::matrix_order that specifies the order (append or prepend) in which the scale vector is applied to this xtd::drawing::drawing_2d::matrix. |
void xtd::drawing::drawing_2d::matrix::shear | ( | float | scale_x, |
float | scale_y | ||
) |
Applies the specified shear vector to this xtd::drawing::drawing_2d::matrix.
scale_x | The horizontal shear factor. |
scale_y | The vertical shear factor. |
void xtd::drawing::drawing_2d::matrix::shear | ( | float | scale_x, |
float | scale_y, | ||
xtd::drawing::drawing_2d::matrix_order | order | ||
) |
Applies the specified shear vector to this xtd::drawing::drawing_2d::matrix in the specified order.
scale_x | The horizontal shear factor. |
scale_y | The vertical shear factor. |
order | A xtd::drawing::drawing_2d::matrix_order that specifies the order (append or prepend) in which the shear is applied. |
void xtd::drawing::drawing_2d::matrix::transform_points | ( | std::vector< xtd::drawing::point > & | points | ) |
Applies the geometric transform represented by this xtd::drawing::drawing_2d::matrix to a specified array of points.
points | An array of xtd::drawing::point structures that represents the points to transform. |
void xtd::drawing::drawing_2d::matrix::transform_points | ( | std::vector< xtd::drawing::point_f > & | points | ) |
Applies the geometric transform represented by this xtd::drawing::drawing_2d::matrix to a specified array of points.
points | An array of xtd::drawing::point_f structures that represents the points to transform. |
void xtd::drawing::drawing_2d::matrix::transform_vectors | ( | std::vector< xtd::drawing::point > & | points | ) |
Applies only the scale and rotate components of this xtd::drawing::drawing_2d::matrix to the specified array of points.
points | An array of xtd::drawing::point structures that represents the points to transform. |
void xtd::drawing::drawing_2d::matrix::transform_vectors | ( | std::vector< xtd::drawing::point_f > & | points | ) |
Applies only the scale and rotate components of this xtd::drawing::drawing_2d::matrix to the specified array of points.
points | An array of xtd::drawing::point_f structures that represents the points to transform. |
void xtd::drawing::drawing_2d::matrix::translate | ( | float | offset_x, |
float | offset_y | ||
) |
Applies the specified translation vector (offset_x and offset_y) to this xtd::drawing::drawing_2d::matrix by prepending the translation vector.
offset_x | The x value by which to translate this xtd::drawing::drawing_2d::matrix. |
offset_y | The y value by which to translate this xtd::drawing::drawing_2d::matrix. |
void xtd::drawing::drawing_2d::matrix::translate | ( | float | offset_x, |
float | offset_y, | ||
xtd::drawing::drawing_2d::matrix_order | order | ||
) |
Applies the specified translation vector (offset_x and offset_y) to this xtd::drawing::drawing_2d::matrix in the specified order.
offset_x | The x value by which to translate this xtd::drawing::drawing_2d::matrix. |
offset_y | The y value by which to translate this xtd::drawing::drawing_2d::matrix. |
order | A xtd::drawing::drawing_2d::matrix_order that specifies the order (append or prepend) in which the translation is applied to this xtd::drawing::drawing_2d::matrix. |
void xtd::drawing::drawing_2d::matrix::vector_transform_points | ( | std::vector< xtd::drawing::point > & | points | ) |
Multiplies each vector in an array by the matrix. The translation elements of this matrix (third row) are ignored.
points | An array of xtd::drawing::point structures that represents the points to transform. |
|
overridevirtualnoexcept |
Returns a xtd::string that represents the current object.
Reimplemented from xtd::object.
|
virtualnoexcept |
Determines whether the specified object is equal to the current object.
obj | The object to compare with the current object. |
Reimplemented from xtd::object.
|
inlinestaticnoexcept |
Determines whether the specified object instances are considered equal.
object_a | The first object to compare. |
object_b | The second object to compare. |