【发布时间】:2018-01-26 12:15:47
【问题描述】:
<html lang="en-US">
<head>
<link rel="stylesheet" href="https://codepen.io/basement/pen/oepKxY.css">
</head>
<body>
<iframe src="https://s.codepen.io/basement/debug/zdpVyV/PNAvYLZmJRQr"></iframe>
<div class="wrp">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"
width="100" height="100"
class="canvas"
>
<defs>
<style type="text/css">
polygon { fill: none; stroke-width: 0.5; stroke: #f00; }
</style>
</defs>
<g transform="translate( 0 12.5 ) scale( 1 )">
<polygon
points="
75,6.7
75,93.3
0,50
"
transform="rotate( -30 50 50 )"
/>
</g>
</svg>
</div>
<script src="origin.js"></script>
</body>
</html>
我想在定义特定的变换原点的同时使 sn-p 以上比例中的红色三角形更大。使用 SVG 中的 rotate 属性,我们可以做到这一点:
transform="rotate( -30 50 50 )"
第一个值:-30 逆时针旋转元素。 50 50 定义了变换原点(分别为 x 和 y )。我可以用scale 做到这一点吗?我希望我的红色三角形放大但保持原点居中。
注意: 我知道 CSS 中的 transform-origin,但我假设 CSS 使用的坐标系是相对于整个网页的,或者它通常是最接近的定位元素是...我想用 SVG 坐标术语来定义它,就像使用 rotate 属性一样。
【问题讨论】:
标签: html css svg transform scale