给定SVG Path元素,如何将所有路径命令转换为绝对坐标?例如,转换此路径:
<path d="M17,42 l100,0 v100 h-100 z"/>
Run Code Online (Sandbox Code Playgroud)
进入这个等效路径:
<path d="M17,42 L117,42 V142 H17 Z"/>
Run Code Online (Sandbox Code Playgroud)
这个问题是由这个问题推动的.
是否有可能,如果是这样,如何绘制图像,其四个角被扭曲成非矩形形状.例如,如果您想要绘制图像,就好像它已在3d空间中旋转一样.
我试过perspective这里的解决方案如何分别转换形状的每一面?但由于形状的不规则性,可能无法使其工作.只有顶部和右侧的列是倾斜的,垂直和底部是直的.我怎么能用CSS做到这一点?
假设我有一个 div,其中有两个 SVG 元素:svgPlan和svgIcon(这是一个 SVG 图像元素)。
svg计划:
svg图标:
一组变换(透视、旋转X、缩放和平移)应用于父元素(svgPlan):
svg.style('transform', 'perspective(30em) rotateX(33deg) scale(1.7) translate(0%, -6%)');
Run Code Online (Sandbox Code Playgroud)
转换后的 svgPlan:
我想在svgPlan内显示svgIcon。
问题:转换应用于父元素svgPlan和子元素svgIcon。看起来孩子会自动继承应用于父母的样式,这不是我想要的。我希望图标出现时没有任何效果。
问题:我怎样才能从父亲的风格中取消子元素的继承(我相信目前在 SVG 上这是不可能的),或者应用逆变换以使图标在没有任何透视或风格的情况下出现?
最小可重复示例:
svg.style('transform', 'perspective(30em) rotateX(33deg) scale(1.7) translate(0%, -6%)');
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助。
svg ×2
canvas ×1
css ×1
css-shapes ×1
css3 ×1
html ×1
html5 ×1
inheritance ×1
javascript ×1
perspective ×1
transform ×1