gpt4 book ai didi

html - 如何使用 `use` 在 SVG 中缩放/挤压三 Angular 形符号

转载 作者:太空宇宙 更新时间:2023-11-04 06:17:54 25 4
gpt4 key购买 nike

我有以下系统:

<html>
<head>
<style>
html, body {
margin: 0;
padding: 0;
overflow: hidden;
}
</style>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3000 3000">
<defs>
<symbol id="triangle" viewBox="0 0 100 100">
<polygon points="0,100 50,0 100,100" class="triangle" />
</symbol>

<symbol id="tree" viewBox="0 0 100 100">
<use href="#triangle" width="100" height="100" />
</symbol>
</defs>

<use href="#tree" width="200" height="400" x="1000" />
<use href="#tree" width="100" height="100" x="1100" />
</svg>
</body>
</html>

对于以下内容:

<use href="#tree" width="200" height="400" x="1000" />

我希望它是一个三 Angular 形,高度是宽度的两倍 (200x400)。但它最终只是一个与原始 100x100 三 Angular 形成比例的随机大小。

想知道如何让它缩放/压缩图像,以便我可以多次使用 use 并让它显示具有相同宽度的不同高度的树。

与制作一个 #rect 符号相同,您可以使用任何宽度/高度调整大小,它会创建一个适当形状的矩形。如果我尝试以下操作,它只会显示一个正方形。

    <symbol id="rect" viewBox="0 0 100 100">
<rect width='100' height='100' />
</symbol>

<use href="#rect" width="400" height="300" x="1300" y="1000" />

最佳答案

preserveAspectRatio="none" 添加到您的符号元素。

<html>
<head>
<style>
html, body {
margin: 0;
padding: 0;
overflow: hidden;
}
</style>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3000 3000">
<defs>
<symbol id="triangle" viewBox="0 0 100 100" preserveAspectRatio="none">
<polygon points="0,100 50,0 100,100" class="triangle" />
</symbol>

<symbol id="tree" viewBox="0 0 100 100" preserveAspectRatio="none">
<use href="#triangle" width="100" height="100" />
</symbol>

<symbol id="rect" viewBox="0 0 100 100" preserveAspectRatio="none">
<rect width='100' height='100' />
</symbol>
</defs>

<use href="#tree" width="200" height="400" x="1000" />
<use href="#tree" width="100" height="100" x="1100" />
<use href="#rect" width="400" height="300" x="1300" y="1000" />
</svg>
</body>
</html>

关于html - 如何使用 `use` 在 SVG 中缩放/挤压三 Angular 形符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55777539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com