Jquery 如何使图像模式填充svg多边形的边界,但在调整大小时不会拉伸图像(质量)?

Jquery 如何使图像模式填充svg多边形的边界,但在调整大小时不会拉伸图像(质量)?,jquery,image,svg,polygon,stretching,Jquery,Image,Svg,Polygon,Stretching,我是svg新手。我创建了一个多边形,并用一个图像填充到它的边界。但当窗口调整大小时,图像会不断拉伸。这是我的密码: <svg width='100%' height='100%' viewBox="0 0 100 100" preserveAspectRatio="none"> <defs> <pattern id="polygon_image_1" width="1" height="1"

我是svg新手。我创建了一个多边形,并用一个图像填充到它的边界。但当窗口调整大小时,图像会不断拉伸。这是我的密码:

<svg width='100%' height='100%' viewBox="0 0 100 100" preserveAspectRatio="none">
                <defs>
                    <pattern id="polygon_image_1" width="1" height="1"  patternUnits="objectBoundingBox">                
                         <image x="0" y="0" width="100" height="100"  preserveAspectRatio="none" xlink:href="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTA-ujgnduv6enQGA4LvB_UV_w3hDrZjWp20KeB-2B1dyEmToVMvSfvGWk"></image>
                    </pattern>                        
                </defs>      

                <polygon points="0,0, 100,0 100,15  50,55 0,15"  fill="url(#polygon_image_1)" <?php></polygon> 
</svg>


将图案大小设置为包含元素的100%,然后将图像大小设置为100 px。将图案设置为10%,图像大小设置为10px,你会得到更接近你想要的东西

<pattern id="polygon_image_1" width=".1" height=".1"  patternUnits="objectBoundingBox">              
    <image x="0" y="0" width="10" height="10"  preserveAspectRatio="none" xlink:href="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTA-ujgnduv6enQGA4LvB_UV_w3hDrZjWp20KeB-2B1dyEmToVMvSfvGWk"></image>
</pattern>

图像平铺和拉伸在您所指的示例中。如果不希望图像缩放,那么您可能只想将PreserveSpectRatio设置为“xMidYMid slice”之类的值。
<pattern id="polygon_image_1" width=".1" height=".1"  patternUnits="objectBoundingBox">              
    <image x="0" y="0" width="10" height="10"  preserveAspectRatio="none" xlink:href="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTA-ujgnduv6enQGA4LvB_UV_w3hDrZjWp20KeB-2B1dyEmToVMvSfvGWk"></image>
</pattern>