网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

GDI+、HTML5、cairo等绘图库中matrix理解的

    GDI+、HTML5、cairo都是二维绘图库,他们的api都提供缩放、旋转、平移等矩阵变换操作,还可以修改matrix,指定变换矩阵。但是,当做一个绘图引擎底层使用这些绘图库时,就发现他们的概念不明确,网上资料、包括很多书,都讲得是一些似是而非的概念,经过总结,得出我自己的正确版本,如下所述:

网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了木垒哈萨克免费建站欢迎大家使用!

    首先,坐标系的概念。GDI+中以winform程序为准描述如下,有3个坐标系:世界坐标系、页面坐标系、设备坐标系(参见GDI+ SDK官方手册)。HTML5和cairo中,分为世界坐标系和用户坐标系。

    其次,变换的概念。变换,是指对坐标系中的图形进行变换,通过将图形的每个点坐标乘以变换矩阵来实现。

    第三,变换的过程。这块是重点,GDI+与HTML5和cairo不同。GDI+同时支持变换坐标系和变换物体。HTML5和cairo仅支持变换坐标系。

    变换坐标系,就是在当前坐标系中,进行缩放、旋转、平移或直接乘变换矩阵等操作,得到新坐标系,之后,在新的坐标系中又可以进行变换,如此循环往复。最后用户调用api进行绘图时传入的坐标是最新的坐标系中的坐标,这样,就可以保持坐标不变,仅通过变换坐标系实现绘制。

    变换物体,就是仅存在一个坐标系,即世界坐标系,物体的坐标就是在世界坐标系中的坐标,变换物体即物体的坐标乘变换矩阵,得到世界坐标系中的新坐标。

    GDI+对变换坐标系和变换物体的支持:

    各API中加参数MatrixOrder.Prepend即表示在当前变换矩阵前插入矩阵(左乘),对应变换坐标系,加参数MatrixOrder.Append即表示在当前变换矩阵后插入矩阵(右乘),对应变换物体。GDI+中坐标以行向量表示,坐标变换形如:

           |m11, m12, 0|

|x,y,1|  |m21, m22, 0| = |x', y', 1|,

           |m31, m32, 1|

用P表示点,M表示变换矩阵则有

P M1 M2 ... Mn = P',

其表示变换物体,即在世界坐标系中,对物体进行若干次变换,得到新的物体坐标。

当变换坐标系时,

用Q表示坐标,N表示变换矩阵择优

Q Nn Nn-1 ... N1 = Q',

其表示从最新的坐标系中坐标Q倒推出世界坐标系中的坐标Q'的过程。


当前题目:GDI+、HTML5、cairo等绘图库中matrix理解的
文章起源:http://bjjierui.cn/article/jeesgc.html

其他资讯