GGiteeupdate
26278b6f创建于 2024年6月3日历史提交

drawing_matrix.h

概述

文件中定义了与矩阵相关的功能函数。

引用文件:<native_drawing/drawing_matrix.h>

库: libnative_drawing.so

起始版本: 11

相关模块:Drawing

汇总

类型定义

名称 描述
typedef enum OH_Drawing_ScaleToFit OH_Drawing_ScaleToFit 矩阵缩放方式枚举。

枚举

名称 描述
OH_Drawing_ScaleToFit { SCALE_TO_FIT_FILL, SCALE_TO_FIT_START, SCALE_TO_FIT_CENTER, SCALE_TO_FIT_END } 矩阵缩放方式枚举。

函数

名称 描述
OH_Drawing_ErrorCode OH_Drawing_MatrixGetAll (OH_Drawing_Matrix *matrix, float value[9]) 获取矩阵所有元素值。
OH_Drawing_Matrix * OH_Drawing_MatrixCreate (void) 用于创建一个矩阵对象。
OH_Drawing_Matrix * OH_Drawing_MatrixCreateRotation (float deg, float x, float y) 创建一个带旋转属性的矩阵对象。 该矩阵对象为:单位矩阵在(x, y)旋转点以度为单位进行旋转后得到的矩阵。
OH_Drawing_Matrix * OH_Drawing_MatrixCreateScale (float sx, float sy, float px, float py) 创建一个带缩放属性的矩阵对象。 该矩阵对象为:单位矩阵在(px, py)旋转点以sx和sy为缩放因子进行缩放后得到的矩阵。
OH_Drawing_Matrix * OH_Drawing_MatrixCreateTranslation (float dx, float dy) 创建一个带平移属性的矩阵对象。 该矩阵对象为:单位矩阵平移(dx, dy)后得到的矩阵。
void OH_Drawing_MatrixSetMatrix (OH_Drawing_Matrix *, float scaleX, float skewX, float transX, float skewY, float scaleY, float transY, float persp0, float persp1, float persp2) 用于给矩阵对象设置参数。
bool OH_Drawing_MatrixSetRectToRect (OH_Drawing_Matrix *, const OH_Drawing_Rect *src, const OH_Drawing_Rect *dst, OH_Drawing_ScaleToFit stf) 将矩阵以缩放方式适配目标矩阵。
void OH_Drawing_MatrixPreRotate (OH_Drawing_Matrix *, float degree, float px, float py) 将矩阵设置为矩阵左乘围绕轴心点旋转一定角度的单位矩阵后得到的矩阵。
void OH_Drawing_MatrixPreScale (OH_Drawing_Matrix *, float sx, float sy, float px, float py) 将矩阵设置为矩阵左乘围绕轴心点按一定缩放因子缩放后的单位矩阵后得到的矩阵。
void OH_Drawing_MatrixPreTranslate (OH_Drawing_Matrix *, float dx, float dy) 将矩阵设置为矩阵左乘平移一定距离后的单位矩阵后得到的矩阵。
void OH_Drawing_MatrixPostRotate (OH_Drawing_Matrix *, float degree, float px, float py) 将矩阵设置为矩阵右乘围绕轴心点旋转一定角度的单位矩阵后得到的矩阵。
void OH_Drawing_MatrixPostScale (OH_Drawing_Matrix *, float sx, float sy, float px, float py) 将矩阵设置为矩阵右乘围绕轴心点按一定缩放因子缩放后的单位矩阵后得到的矩阵。
void OH_Drawing_MatrixPostTranslate (OH_Drawing_Matrix *, float dx, float dy) 将矩阵设置为矩阵右乘平移一定距离后的单位矩阵后得到的矩阵。
void OH_Drawing_MatrixReset (OH_Drawing_Matrix *) 重置当前矩阵为单位矩阵。
void OH_Drawing_MatrixConcat (OH_Drawing_Matrix *total, const OH_Drawing_Matrix *a, const OH_Drawing_Matrix *b) 将矩阵total设置为矩阵a乘以矩阵b。
float OH_Drawing_MatrixGetValue (OH_Drawing_Matrix *, int index) 获取矩阵给定索引位的值。索引范围0-8。
void OH_Drawing_MatrixRotate (OH_Drawing_Matrix *, float degree, float px, float py) 设置矩阵为单位矩阵,并围绕位于(px, py)的旋转轴点进行旋转。
void OH_Drawing_MatrixTranslate (OH_Drawing_Matrix *, float dx, float dy) 设置矩阵为单位矩阵,并平移(dx, dy)。
void OH_Drawing_MatrixScale (OH_Drawing_Matrix *, float sx, float sy, float px, float py) 设置矩阵为单位矩阵,并围绕位于(px, py)的旋转轴点,以sx和sy进行缩放。
bool OH_Drawing_MatrixInvert (OH_Drawing_Matrix *, OH_Drawing_Matrix *inverse) 将矩阵inverse设置为矩阵的倒数,并返回结果。
bool OH_Drawing_MatrixSetPolyToPoly (OH_Drawing_Matrix *, const OH_Drawing_Point2D *src, const OH_Drawing_Point2D *dst, uint32_t count) 通过设置源点以及目标点,生成对应的变换矩阵。 源点以及目标点的个数要大于等于0,小于等于4。
void OH_Drawing_MatrixMapPoints (const OH_Drawing_Matrix *, const OH_Drawing_Point2D *src, OH_Drawing_Point2D *dst, int count) 通过矩阵变换将源点数组映射到目标点数组。
bool OH_Drawing_MatrixMapRect (const OH_Drawing_Matrix *, const OH_Drawing_Rect *src, OH_Drawing_Rect *dst) 将目标矩形设置为一个新的矩形,该矩形是能够包围源矩形的四个顶点通过矩阵变换映射后形成的新顶点的最小矩形。
bool OH_Drawing_MatrixIsEqual (OH_Drawing_Matrix *, OH_Drawing_Matrix *other) 判断两个矩阵是否相等。
bool OH_Drawing_MatrixIsIdentity (OH_Drawing_Matrix *) 判断矩阵是否是单位矩阵。
void OH_Drawing_MatrixDestroy (OH_Drawing_Matrix *) 用于销毁矩阵对象并回收该对象占有的内存。