Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用图像填充SVG多边形_Javascript_Css_Angularjs_Svg - Fatal编程技术网

Javascript 使用图像填充SVG多边形

Javascript 使用图像填充SVG多边形,javascript,css,angularjs,svg,Javascript,Css,Angularjs,Svg,这是本书的延续 在电路板的底部有三个多边形,它们需要有一个图像作为填充。我试图使用 background:url(image.png); background-size:cover; 及 变量“points”派生自一个函数,该函数采用内部视图维度来规范化像素以匹配百分比 谢谢 [编辑] <defs ng-if="cool.di.models.spaces[space].img"> <pattern id="img-{{cool.di.model

这是本书的延续

在电路板的底部有三个多边形,它们需要有一个图像作为填充。我试图使用

background:url(image.png); 
background-size:cover;


变量“points”派生自一个函数,该函数采用内部视图维度来规范化像素以匹配百分比

谢谢

[编辑]

<defs ng-if="cool.di.models.spaces[space].img">
     <pattern
        id="img-{{cool.di.models.spaces[space].color}}"
        patternUnits="userSpaceOnUse"
        width="{{points.split(' ')[2].split(',')[0] - points.split(' ')[0].split(',')[0]}}"
        height="{{points.split(' ')[2].split(',')[1] - points.split(' ')[0].split(',')[1]}}">
            <image
                 xlink:href="{{cool.di.models.spaces[space].img}}"
                 ng-attr-x="{{points.split(' ')[0].split(',')[0]}}"
                 ng-attr-y="{{points.split(' ')[0].split(',')[1]}}"
                 height="100%"
                 width="100%"
                 stroke="black"
                 style="border:5px solid black"></image>
    </pattern>
</defs>
<svg ng-style="{position:'absolute', background:'none', overflow: 'visible'}">
    <g>
         <polygon
              ng-attr-points="{{points}}"
              stroke="black"
              fill="{{cool.di.models.spaces[space].img ? 'url(#img-'+cool.di.models.spaces[space].color+')' : bgColor || 'gray'}}">

         </polygon>
    </g>
</svg>


图像(即
标记)需要宽度和高度属性。图案没有点属性。谢谢,你知道如何用与多边形相同的点剪裁图像吗?不确定你的意思,如果你做对了,图像将以剪裁到多边形的方式显示。干杯,@RobertLongson。。我可以直接在多边形元素下放置一个,我可以处理它,但是还没有发现我的错误,将它作为模式应用到模式ID。我已经用我当前的尝试更新了问题,在“是否有帮助”下。如果没有更多帮助,我需要查看后期处理的输出。
<defs ng-if="cool.di.models.spaces[space].img">
     <pattern
        id="img-{{cool.di.models.spaces[space].color}}"
        patternUnits="userSpaceOnUse"
        width="{{points.split(' ')[2].split(',')[0] - points.split(' ')[0].split(',')[0]}}"
        height="{{points.split(' ')[2].split(',')[1] - points.split(' ')[0].split(',')[1]}}">
            <image
                 xlink:href="{{cool.di.models.spaces[space].img}}"
                 ng-attr-x="{{points.split(' ')[0].split(',')[0]}}"
                 ng-attr-y="{{points.split(' ')[0].split(',')[1]}}"
                 height="100%"
                 width="100%"
                 stroke="black"
                 style="border:5px solid black"></image>
    </pattern>
</defs>
<svg ng-style="{position:'absolute', background:'none', overflow: 'visible'}">
    <g>
         <polygon
              ng-attr-points="{{points}}"
              stroke="black"
              fill="{{cool.di.models.spaces[space].img ? 'url(#img-'+cool.di.models.spaces[space].color+')' : bgColor || 'gray'}}">

         </polygon>
    </g>
</svg>