作者:创世魂
● 本类说明
本类的主要作用就是用来进行坐标转换。
在“矩阵画位图”方法中,运用了“矩阵类”中的“乘于平移矩阵”方法。
图内关于矩阵的说明,大家可以简单了解一下,实在看不懂,那么就直接看本类中的实际例子。
或者参考“画板类”中几个关于矩阵的方法。
注意:本类位于“安卓基本类”模块中,必须添加此模块才能使用。
● 建立缩放矩阵
帮助文档如下图:
以上方法都是建立对应的“矩阵对象”,建立矩阵并不会进行乘法运算,而是直接建立当前矩阵。
“多次建立”对应的矩阵也只会以“最后一次”建立的矩阵为准。
此处讲解“乘于错切矩阵”,其它矩阵的效果,可跳转至“画板类.乘于XX矩阵”查看。
“建立错切矩阵”的“错切因子”依然是切斜角度“tan值”。
可参考“画板类.乘于错切矩阵”中的相关解释。
代码编写如下图:
可以看到上面依旧是建立位图那一套方法。
随后定义“矩阵类”变量,调用本方法“建立错切矩阵”。
参数也可以使用“求正切(3.14/4)”,同样也表示倾斜45度。
最后执行“矩阵画位图”方法绘制位图对象。
运行效果如下图:
最终的结果就是,导入的图片切斜了45度。
● 建立旋转矩阵3
帮助文档如下图:
本方法与“建立旋转矩阵”的区别,是通过“正弦值”和“余弦值”进行旋转。
代码编写如下图:
在“建立XX矩阵”代码的基础上进行简单修改即可。
需要增加“两个小数”变量。
分别调用“求正弦”和“求余弦”方法,赋值给“正弦”和“余弦”变量
方法内的公式的目的,是将“角度值”转换为“弧度值”,通过“弧度值”才可以进行求正弦余弦,
公式中“45”代表旋转角度,想要旋转多少度,公式内就修改成多少度。
运行效果如下图:
● 建立旋转矩阵2
帮助文档如下图:
以上的四个“建立XX矩阵”,都如下图所示的,会增加两个参数。
分别用来定义“中心横坐标”和“中心纵坐标”。
大家可以自己填写“中心横纵坐标”参数,自行查看效果,此处不再详细介绍。
代码编写参考上面的建立方法。
● 乘于平移矩阵
以上四个方法与“建立矩阵”不同之处在于,以上方法都会进行一次乘法运算(知道即可,无需深入了解)。
除此之外,本方法可连续使用多个,以达到多次“旋转或平移”的目的。
以上方法可参考“画板类.乘于XX矩阵”,此处不再进行演示。
代码编写可参考,上面的建立矩阵方法。
● 乘于缩放矩阵2
帮助文档如下图:
以上三个“乘于XX矩阵2”的方法,和“建立XX矩阵2”相同,都增加了“两个中心坐标”参数。
此处不再详细介绍,大家可以自己填写相关参数,演示效果。
代码编写可参考,上面的建立矩阵方法。
● 乘于矩阵
帮助文档如下图:
本方法也进行了乘法运算,将“参数1”的矩阵和“参数2”的矩阵进行计算,最后结果返回给“参数1”的矩阵
简单来说,就是将两种矩阵结合起来。
比如说,你想让一个图形进行“平移旋转”,这个时候可以使用本方法操作。
代码编写如下图:
还是建立矩阵的那一套代码,这里需要定义“两个矩阵”变量。
通过“矩阵”建立一个平移矩阵,“矩阵2”建立一个旋转。
随后采用动态调用格式,通过“矩阵”变量调用“乘于矩阵”方法,参数内填写“矩阵2”。
最后调用“矩阵画位图”进行位图绘制即可。
运行效果如下图:
最终的结果,绘制的图片首先进行了“平移”,随后会进行“90度”旋转。
当然整个过程是不可见的,会直接显示“平移旋转”后的结果。
● 取矩阵数据
帮助文档如下图:
本方法的作用就是用来获取矩阵的“9个分量值”。
知道即可,本方法无需深入了解。
● 取逆矩阵
帮助文档如下图:
本方法的作用就是字面上的意思。
取当前矩阵的逆向矩阵,如果存在逆向矩阵返回“真”,并且将“逆向矩阵”赋值给“参数2”。
代码编写如下图:
例如:我们建立平移矩阵,参数填写“负值”。
然后用“取逆矩阵”方法取出逆矩阵。
最后绘制“逆向矩阵”。
运行效果如下图:
最终的结果你会发现,即使是填写“负值”也正常绘制。
这就是“逆向矩阵”的功劳。
其它矩阵的逆向,大家可自行测试。
● 复制
帮助文档如下图:
顾名思义,就是将指定矩阵的内容赋值到当前矩阵内。
调用方式:“矩阵类.复制()”,本方法不进行详细介绍。
● 是否相同
帮助文档如下图:
顾名思义,本方法就是用来判断两个矩阵是否相同。
相同返回“真”,不相同返回“假”。
调用方式:“矩阵类.是否相同()”,本方法不进行详细介绍。
● 置为多边形转换结果
帮助文档如下图:
简单来说就是通过两个“浮点小数数组”指定一个“源矩形”和“目的矩形”形成一个转换矩阵。
代码编写如下图:
我们需要额外定义五个变量,分别为“一个矩阵”,“两个小数数组”和“两个浮点小数数组”
小数数组内设置“初始值”至少八个成员,两个成员指定一个坐标。,
“四个坐标”指定一个“矩形”,坐标顺序为逆时针方向。
矩形坐标顺序分别为:“左上角”,“左下角”,“右下角”和“右上角”。
通过“浮点小数数组.从小数数组创建”方法,创建浮点小数后,赋值给对应的变量。
然后就可以调用本方法进行转换,最后绘制位图。
运行效果如下图:
● 置为相乘结果
帮助文档如下图:
本方法和“乘于矩阵”类似,不同之处在于,本方法有三个参数。
“参数2”和“参数3”相乘(也就是相结合),最后结果赋值给“参数1”。
另外注意:本方法首先对“参数3”设置的矩阵进行转换,然后才是“参数2”。
代码编写如下图:
本方法这里需要定义三个“矩阵类”变量。
“矩阵2”和“矩阵3”分贝建立“平移和旋转”矩阵。
然后调用“本方法”相乘,分别填入对应参数。
在本方法内,首先会执行“旋转45度”操作,然后在进行“平移”。
最后调用“矩阵画位图”绘制“矩阵1”即可。
运行效果如下图:
● 置为矩形转换结果
帮助文档如下图:
本方法与“置为多边形转换结果”类似。
不同之处是本方法是通过“小数矩形类”来定义两个矩形。
并且增加了“矩阵矩形转换方式”,本方式调用方法:“矩阵矩形转换方式.XXX”。
“小数矩形类”在本教程中也多次使用,此处不再进行演示,大家自行测试。
● 置矩阵数据
帮助文档如下图:
本方法的作用就是用来设置矩阵的“9个分量值”。
知道即可无需深入了解,因此本方法不再演示。
● 转换半径
帮助文档如下图:
本方法的主要作用就是用来计算矩阵转换后的“平均半径”。
代码编写如下图:
建立一个缩放矩阵,参数填写“0.5和1”,表示横向缩放一倍,纵向不变。
随后调用本方法转换“半径100”,用“提示框”弹出结果。
运行效果如下图:
最终缩放后的平均半径为“70.71”。
● 转换坐标
帮助文档如下图:
本方法和“转换半径”有些类似,不同之处本方法转换的“坐标值”值为精准值。
代码编写如下图:
我们直接在“转换半径”的代码上稍作修改,增加一个“坐标类”设置横纵坐标为“100”。
随后调用“转换坐标”方法转换本坐标,最后利用“横纵坐标”读属性,将转换后的坐标值读取出来。
运行效果如下图:
最终结果,绘制的图片缩小了一半,坐标也跟着缩小了一半。
● 转换坐标数组
帮助文档如下图:
本方法和“转换坐标”不同之处在于,本方法可以一次性转换一堆坐标值。
填写的“浮点小数数组”成员数必须为偶数,最终的转换结果也会返回当前数组内。
“浮点小数数组”的创建可参考“置为多边形转换结果”。
“浮点小数数组”取成员的办法,可参考“取文本字符宽度”方法。
● 转换矢量数组
帮助文档如下图:
本方法和“转换坐标数组”类似,因此不在详细介绍。
● 转换矩形
帮助文档如下图:
本方法简单来说,就是判断当前矩阵类进行转换后是否为“矩形”。
生成的四个坐标值,将会赋值给“参数2小数矩形类”。
通过“小数矩形类”的“上下左右”四个属性可以获取矩形边界坐标。
本方法返回值为“真”,表示最终结果为一个矩形,相反返回假。
● 转换矩形2
帮助文档如下图:
本方法和“转换矩形”的区别在于,本方法的最终结果会赋值给“参数3”。
● 重置
帮助文档如下图:
本方法的作用可将当前矩阵重置为“单位矩阵”。
单位矩阵特性:任何矩阵与单位矩阵相乘都等于本身。
知道即可,无需深入了解。
● 不导致矩形变形
帮助文档如下图:
简单来说,本方法的作用就是判断转换后是否还是矩形。
● 为单位矩阵(读)
帮助文档如下图:
本读属性的作用就是用来判断当前矩阵是否为“单位矩阵”。
如果是“返回真”,相反返回“假”。