Chindle优化 之 转换矩阵

本文介绍了图形学中变换矩阵的应用,包括平移、旋转和缩放等基本操作,并通过SVG示例展示了如何使用变换矩阵调整文本的位置和大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图形学时隔4年重新进入视野。利用Transform Matrix可以很方便地进行图形变换运算,Chindle的编码中需要熟练掌握。

利用转换矩阵,可以:

1. 平移

2. 旋转

3. 缩放(翻转也是缩放的一种)

转换向量:[a, b, c, d, e, f, g]

Matrix


a, d表示缩放,

缩放矩阵

e, f表示平移.

平移矩阵


更多参考下面的链接:

转换矩阵复习:http://www.w3.org/TR/SVG/coords.html#TransformMatrixDefined



SVG中对transform maxtri的支持很好,有兴趣的可以做点小试验:

<?xml version="1.0" encoding="utf-8"?> <!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="4000px" height="4000px" viewBox="0 0 4000 4000" enable-background="new 0 0 4000 4000" xml:space="preserve"> <desc>中国人的家</desc> <path fill="none" stroke="#0000FF" d="M1,1L1,1L1,1z"/> <text transform="matrix(1 0 0 1 249.9998 222.0286)" font-family="'FZCCHJW--GB1-0'" font-size="580">显示的是中</text> <text transform="matrix(1 0 0 1 249.9998 349.9998)" font-family="'FZCCHJW--GB1-0'" font-size="280">文</text> <text transform="matrix(1 0 0 1 2350.0002 2149.9998)" font-family="'FZCCHJW--GB1-0'" font-size="580">显示的是中</text> <text transform="matrix(1 0 0 1 3361.1428 2391.1628)" font-family="'FZCCHJW--GB1-0'" font-size="280">文</text> <text transform="matrix(1 0 0 1 593.1165 1161.2136)" font-family="'FZCCHJW--GB1-0'" font-size="580">显示的是中</text> <text transform="matrix(1 0 0 1 3493.1165 1203.4011)" font-family="'FZCCHJW--GB1-0'" font-size="280">文</text> <text transform="matrix(1 0 0 1 2352.5002 3420.4998)" font-family="'SimSun'" font-size="12">fsafsdf</text> <rect x="1033.5" y="418.5" fill="none" width="375" height="232"/> </svg>
transform="matrix(1 0 0 1 249.9998 222.0286)" a=1, d =1, scale=1;

e=250, f=222, 表示平移,在这里base点位(0,0)所以,(e,f)即坐标。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值