易语言带你认识矩阵源码

资源介绍:

认识矩阵, 譬如这是一个 2*3 (2 行 3 列) 的矩阵:

┏    ┓ 

┃3 1 4 ┃ 

┃2 5 0 ┃ 

┗    ┛ 

  矩阵相加的例子:

┏  ┓  ┏  ┓  ┏  ┓ 

┃1 0┃  ┃2 4┃  ┃3 4┃ 

┃0 2┃ + ┃1 5┃ = ┃1 7┃ 

┃1 3┃  ┃0 6┃  ┃1 9┃ 

┗  ┛  ┗  ┛  ┗  ┛ 

  在 GDI+ 中应用的矩阵运算是 “相乘”.

  矩阵相乘有个前提: 就是第一个矩阵的 “列数” 要和第二个矩阵的 “行数” 一致.

  譬如: 矩阵 A*B 要乘以 矩阵 M*N, 要求 B = M.

  GDI+ 中用到的 GP矩阵 是 3*3 的, 颜色矩阵(ColorMatrix) 是 5*5 的, 都符合这个条件.

  矩阵 A*B 与 M*N 相乘后会得到一个 A*N 的新矩阵;

  譬如一个 “2 行 3 列” 的矩阵与 “3 行 2 列” 的矩阵相乘, 会得到一个 “2 行 2 列” 的新矩阵.

  从下面例子中可以看出相乘的方法:

┏    ┓  ┏   ┓  ┏               ┓  ┏    ┓ 

┃1 2 3 ┃  ┃7  8 ┃  ┃1*7+2*9+3*11  1*8+2*10+3*12┃  ┃58  64┃ 

┃    ┃ * ┃9 10 ┃ = ┃               ┃ = ┃    ┃ 

┃4 5 6 ┃  ┃11 12 ┃  ┃4*7+5*9+6*11  4*8+5*10+6*12┃  ┃130 154┃ 

┗    ┛  ┗   ┛  ┗               ┛  ┗    ┛ 

  因为 GDI+ 是二维的, GP矩阵 的第 3 列一直是 0, 0, 1, 但为了相乘运算也必须有这个位置.

  它们看起来是下面的样子:

┏      ┓  ┏      ┓ 

┃1  0  0┃  ┃1  0  0┃ 

┃0  1  0┃ or┃0  1  0┃ 

┃2  3  1┃  ┃4  5  1┃ 

┗      ┛  ┗      ┛ 

  假如让上面两个矩阵相乘, 下面分别用 “手动运算” 与 “GDI+的函数运算” 对照下结果.

  手动运算:

┏      ┓  ┏      ┓  ┏                     ┓  ┏      ┓ 

┃1  0  0┃  ┃1  0  0┃  ┃1*1+0*0+0*4  1*0+0*1+0*5  1*0+0*0+0*1┃  ┃1  0  0┃ 

┃0  1  0┃ * ┃0  1  0┃ = ┃0*1+1*0+0*4  0*0+1*1+0*5  0*0+1*0+0*1┃ = ┃0  1  0┃ 

┃2  3  1┃  ┃4  5  1┃  ┃2*1+3*0+1*4  2*0+3*1+1*5  2*0+3*0+1*1┃  ┃6  8  1┃ 

┗      ┛  ┗      ┛  ┗                     ┛  ┗      ┛ 

  一个 GP矩阵 的默认值(或者说单位矩阵)是:

┏      ┓ 

┃1  0  0┃ 

┃0  1  0┃ 

┃0  0  1┃ 

┗      ┛ 

//对角线上是 1, 其他都是 0; 这个默认值可通过 矩阵.重置 方法获取. 

  根据各个位置的功能, GDI+ 给各位置命名如下(第三列没有意义也没有命名):

┏        ┓ 

┃M11  M12  0┃ 

┃M21  M22  0┃ 

┃DX   DY   1┃ 

┗        ┛ 

资源作者:

资源界面:

易语言GDI矩阵源码.png

资源下载:

相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

易语言带你认识矩阵源码》有0个想法

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注