javascript - 为什么两个 css matrix3d 转换得到不同的结果?
问题描述
我想将 svg 从正方形转换为梯形。
我参考this site以两种方式实现了转换。一个是 svg 标签中的转换,另一个是 g 标签中的转换。使用 svg 标签进行转换后,得到了预期的结果。但是,当它在g标签中进行转换时,它并不能很好地转换。
这两个代码有什么区别?如何修复它以在 g 标签中进行所需的转换?
<svg id="transform" width="100" height="100" overflow="visible"
style="transform-origin: 100px 100px 0px; transform: matrix3d(1.00917, 0, 0, 9.2e-05, 0, 0.908257, 0, -0.000917, 0, 0, 1, 0, 0, 0, 0, 1);">
<g transform="translate(100,100)">
<rect x="0" y="0" width="100" height="100" fill="none" stroke="blue"></rect>
</g>
</svg>
<svg id="transform2" width="100" height="100" overflow="visible">
<g id="upper"
style="transform-origin: 100px 100px 0px; transform: matrix3d(1.00917, 0, 0, 9.2e-05, 0, 0.908257, 0, -0.000917, 0, 0, 1, 0, 0, 0, 0, 1);">
<g transform="translate(100,100)">
<rect x="0" y="0" width="100" height="100" fill="none" stroke="red"></rect>
</g>
</g>
</svg>
源代码和演示在这里https://codepen.io/fbkclanna/pen/LYYEPJo。
我希望红色方块以与蓝色方块相同的方式进行转换。
解决方案
推荐阅读
- angularjs - 什么是 AngularJS uibmodal 解决争论?
- jsf-2.2 - FlowScope getNavigationCaseFromFlowStructure 空指针错误
- ms-access - MS Access - 所有已删除项目所在的表
- r - 根据条件对 n 个对象进行 x 次采样
- javascript - 将脚本标签添加到 html 时出现 Chrome 扩展错误
- reactjs - 带有反应选择模块的打字稿。构建失败
- string - 如果这些事实中有 x 个为真,则返回 y
- java - 有可能这样做吗?
- mysql - 根据 SUM 为行分配位置值
- linux - 如何部分编译 python 文件?