- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我有 SVG 多边形,对于某些多边形,我使用图案作为填充。但我想要那个图案的背景颜色。就像背景颜色上的图案。
var pattern = me.canvas.append('defs')
.append('pattern')
.attr('id', 'diagonalHatch')
.attr('patternUnits', 'userSpaceOnUse')
.attr('width', 4)
.attr('height', 4)
.append('path')
.attr('d', 'M-1,1 l2,-2 M0,4 l4,-4 M3,5 l2,-2')
.attr('stroke', '#010101')
.attr('stroke-width', 1)
.attr("opacity",0.5);
var polyObj = polygonLayer.append("polygon")
.attr('stroke','black')
.attr('stroke-width','2')
.style('fill','url(#diagonalHatch)');
我有这个fiddle .我想要这个图案背后的颜色。
请帮忙。
最佳答案
正如我在评论中提到的,一种方法是在 pattern
中(在 path
之前)添加一个 4x4 rect
并且然后给 rect
所需的填充。
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<head>
<div id='myDiv'></div>
<script type="text/javascript">
var canvas = d3.select('#myDiv')
.append('svg')
.attr('width', '400px')
.attr('height', '400px');
canvas.append('defs')
.append('pattern')
.attr('id', 'diagonalHatch')
.attr('patternUnits', 'userSpaceOnUse')
.attr('width', 4)
.attr('height', 4)
.append('rect')
.attr('width', 4)
.attr('height', 4)
.attr('x', 0)
.attr('x', 0)
.attr('fill', 'blue');
d3.select('#myDiv svg pattern#diagonalHatch').append('path')
.attr('d', 'M-1,1 l2,-2 M0,4 l4,-4 M3,5 l2,-2')
.attr('stroke', '#010101')
.attr('stroke-width', 1)
.attr("opacity", 0.5);
var polygon = canvas.append('polygon')
.attr('fill', 'none').attr('points', '282.0000915527344,104,280.0001220703125,165.00009155273438,349,174.99998474121094,345.00006103515625,105.99999237060547,282.0000915527344,104')
.attr('stroke', 'black')
.attr('stroke-width', '2')
.style('fill', 'url(#diagonalHatch)')
</script>
</head>
<body>
</body>
下面是一个带有实际代码的演示:
/* map menu controls */
.ui-active rect {
fill: #212121
}
.ui-active text {
fill: #fff
}
.ui-default rect {
fill: #e6e6e6
}
.ui-default text {
fill: #000
}
.map-controls {
display: none;
}
/* heatmap colors (courtesy of colorbrewer2.org) */
.RdYlBu .d6-6 {
fill: #D73027;
background: #D73027;
color: #121212
}
.RdYlBu .d6-5 {
fill: #FC8D59;
background: #FC8D59;
color: #121212
}
.RdYlBu .d6-4 {
fill: #FEE090;
background: #FEE090;
color: #121212
}
.RdYlBu .d6-3 {
fill: #E0F3F8;
background: #E0F3F8;
color: #121212
}
.RdYlBu .d6-2 {
fill: #91BFDB;
background: #91BFDB;
color: #121212
}
.RdYlBu .d6-1 {
fill: #4575B4;
background: #4575B4;
color: #121212
}
/* overlays */
.polygon {
stroke: white;
stroke-width: 2px;
fill-opacity: 0.2
}
.vertex {
stroke: lime;
stroke-width: 2px;
fill: none
}
/* vector field */
.vector {
stroke-width: 1px;
stroke: lightsteelblue
}
/* path plot */
.pathplot path {
stroke-width: 2px;
stroke: steelblue;
fill: #E0E0E0;
opacity: 0.4;
}
.planned {
stroke-dasharray: 9, 5
}
/* Grid lines*/
.grid .tick line {
stroke: #e3e3e3;
opacity: 1;
}
.pathplot line {
stroke-width: 2px;
stroke: steelblue;
stroke-dasharray: 15, 5;
}
.overlays line {
stroke-width: 4px;
stroke: steelblue
}
.overlays path {
stroke-width: 2px;
stroke: steelblue;
fill: none
}
.heatmap .d0 {
fill: #D73027;
stroke: null;
opacity: 0.5;
}
.heatmap .d1 {
fill: #FC8D59;
stroke: null;
opacity: 0.5;
}
.heatmap .d2 {
fill: #FEE090;
;
stroke: null;
opacity: 0.5;
}
.heatmap .d3 {
fill: #E0F3F8;
;
stroke: null;
opacity: 0.5;
}
.heatmap .d4 {
fill: #91BFDB;
;
stroke: null;
opacity: 0.5;
}
.heatmap .d5 {
fill: #4575B4;
;
stroke: null;
opacity: 0.5;
}
.overlays .PERIMETER {
stroke-width: 2px;
stroke: steelblue;
stroke-dasharray: 10, 2;
}
/*wall types*/
.overlays .cubicle {
stroke-width: 2px;
stroke: #2F6299
}
.overlays .bookshelf {
stroke-width: 2px;
stroke: #86471E
}
.overlays .brickwall {
stroke-width: 4px;
stroke: #FF0000;
}
.overlays .drywall {
stroke-width: 2px;
stroke: #948A54;
}
.overlays .thindoor {
stroke-width: 2px;
stroke: #E36C0A;
}
.overlays .thickdoor {
stroke-width: 3px;
stroke: #E36C0A;
}
.overlays .concrete {
stroke-width: 4px;
stroke: #A9ABAA;
}
.overlays .elevatorshaft {
stroke-width: 6px;
stroke: #262626;
}
.overlays .thinwindow {
stroke-width: 2px;
stroke: #FFC000;
}
.overlays .thickwindow {
stroke-width: 3px;
stroke: #FFC000;
}
.overlays .wrap {
stroke-width: 10px;
stroke-opacity: 0;
}
.hmbands {} .hideBands {
display: none !important;
}
.selector_radius {
fill: transparent;
}
.selector_radius.selected {
stroke-width: 5px;
stroke: red;
stroke-dasharray: 3, 2;
}
.coverage_radius {
stroke-width: 1px;
stroke: black;
stroke-dasharray: 3, 2
}
.coverage_radius.selected {
stroke-width: 3px;
stroke: red;
stroke-dasharray: 5, 4;
}
.background-floorplan {
opacity: 0.15;
}
.heatmap {
opacity: 0.25
}
svg {
cursor: pointer;
}
svg .grid .tick {
opacity: 0.3;
}
svg text {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.mainDrawingPage {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
svg text::selection {
background: none;
}
.axis path {
stroke: black;
fill: none;
}
.axis line {
fill: none;
stroke: black;
}
.axis .axis-line {
fill: solid;
stroke: black;
}
/* Tooltip */
.nvtooltip,
.nvtooltip * {
font-family: tahoma, arial, verdana, sans-serif;
font-size: 10px;
}
.nvtooltip .missing {
color: #FF0000;
}
.nvtooltip {
position: absolute;
background-color: rgba(255, 255, 255, 1);
padding: 5px;
border: 1px solid #ddd;
z-index: 100000;
-moz-box-shadow: 4px 4px 8px rgba(0, 0, 0, .5);
-webkit-box-shadow: 4px 4px 8px rgba(0, 0, 0, .5);
box-shadow: 4px 4px 8px rgba(0, 0, 0, .5);
-moz-border-radius: 5px;
border-radius: 5px;
pointer-events: none;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background: rgba(255, 255, 255, 0.6);
}
.nvtooltip h3 {
margin: 0;
padding: 0;
text-align: center;
display: inline;
}
.nvtooltip p {
margin: 0;
padding: 0;
text-align: center;
}
.apLabelText {
/*font-weight: bold !important; */
font-size: 10px;
}
.xAxesDivCls {
max-height: 350px;
max-width: 500px;
overflow: hidden
}
.yAxesDivCls {
max-height: 350px;
max-width: 500px;
/* overflow:hidden; */
position: relative;
top: -352px
}
.canvasDivCls {
/* max-height:370px; */
/* max-width:480px; */
/* overflow:auto; */
position: relative;
top: -702px
}
.addImageBtnCls {
position: relative;
top: -700px;
left: 250px;
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<script type="text/javascript">
function appendPolygon() {
debugger;
var canvas = d3.select('.fp-overlays-1419951398667');
canvas.append('defs')
.append('pattern')
.attr('id', 'diagonalHatch')
.attr('patternUnits', 'userSpaceOnUse')
.attr('width', 4)
.attr('height', 4)
.append('rect')
.attr('width', 4)
.attr('height', 4)
.attr('x', 0)
.attr('x', 0)
.attr('fill', 'white');
d3.select('svg pattern#diagonalHatch').append('path')
.attr('d', 'M-1,1 l2,-2 M0,4 l4,-4 M3,5 l2,-2')
.attr('stroke', '#010101')
.attr('stroke-width', 1)
.attr("opacity", 0.5);
var polygon = canvas.append('polygon')
.attr('fill', 'none').attr('points', '282.0000915527344,104,280.0001220703125,165.00009155273438,349,174.99998474121094,345.00006103515625,105.99999237060547,282.0000915527344,104')
.attr('stroke', 'black')
.attr('stroke-width', '2')
.style('fill', 'url(#diagonalHatch)')
}
</script>
<body>
<div id='xAxesDiv' class="xAxesDivCls">
<svg height="500px" width="700px">
<g class="x axis" transform="translate(100,50)">
<g class="tick" transform="translate(0,0)" style="opacity: 1;">
<line y2="-6" x2="0"></line>
<text y="-9" x="0" dy="0em" style="text-anchor: middle;">0</text>
</g>
<g class="tick" transform="translate(72.60000000000001,0)" style="opacity: 1;">
<line y2="-6" x2="0"></line>
<text y="-9" x="0" dy="0em" style="text-anchor: middle;">100</text>
</g>
<g class="tick" transform="translate(145.20000000000002,0)" style="opacity: 1;">
<line y2="-6" x2="0"></line>
<text y="-9" x="0" dy="0em" style="text-anchor: middle;">200</text>
</g>
<g class="tick" transform="translate(217.79999999999998,0)" style="opacity: 1;">
<line y2="-6" x2="0"></line>
<text y="-9" x="0" dy="0em" style="text-anchor: middle;">300</text>
</g>
<g class="tick" transform="translate(290.40000000000003,0)" style="opacity: 1;">
<line y2="-6" x2="0"></line>
<text y="-9" x="0" dy="0em" style="text-anchor: middle;">400</text>
</g>
<g class="tick" transform="translate(363,0)" style="opacity: 1;">
<line y2="-6" x2="0"></line>
<text y="-9" x="0" dy="0em" style="text-anchor: middle;">500</text>
</g>
<path class="domain" d="M0,-6V0H363V-6"></path>
<line x1="-70" class="axis-line" y1="0" x2="0" y2="0"></line>
</g>
</svg>
</div>
<div id='yAxesDiv' class="yAxesDivCls">
<svg height="500px" width="700px">
<g class="y axis" transform="translate(50,100)">
<g class="tick" transform="translate(0,0)" style="opacity: 1;">
<line x2="-6" y2="0"></line>
<text x="-9" y="0" dy=".32em" style="text-anchor: end;">0</text>
</g>
<g class="tick" transform="translate(0,72)" style="opacity: 1;">
<line x2="-6" y2="0"></line>
<text x="-9" y="0" dy=".32em" style="text-anchor: end;">100</text>
</g>
<g class="tick" transform="translate(0,144)" style="opacity: 1;">
<line x2="-6" y2="0"></line>
<text x="-9" y="0" dy=".32em" style="text-anchor: end;">200</text>
</g>
<g class="tick" transform="translate(0,216)" style="opacity: 1;">
<line x2="-6" y2="0"></line>
<text x="-9" y="0" dy=".32em" style="text-anchor: end;">300</text>
</g>
<g class="tick" transform="translate(0,288)" style="opacity: 1;">
<line x2="-6" y2="0"></line>
<text x="-9" y="0" dy=".32em" style="text-anchor: end;">400</text>
</g>
<g class="tick" transform="translate(0,360)" style="opacity: 1;">
<line x2="-6" y2="0"></line>
<text x="-9" y="0" dy=".32em" style="text-anchor: end;">500</text>
</g>
<path class="domain" d="M-6,0H0V360H-6"></path>
<text x="-25" y="-60" style="font-size: 12px; font-family: Helvetica, Arial, sans-serif; text-anchor: middle;">F</text>
<line x1="0" class="axis-line" y1="-70" x2="0" y2="0"></line>
</g>
</svg>
</div>
<div id='canvasDiv' class="canvasDivCls">
<svg height="500px" width="650px">
<g class="map-layers" width="363" height="360" x="0" y="0">
<rect class="canvas" pointer-events="all" style="opacity: 0;"></rect>
<g class="maplayer gridAxisLayer">
<g class="fp-gridAxisLayer-1419951398667">
<g class="grid" transform="translate(100,100)">
<g class="tick" transform="translate(0,0)" style="opacity: 1;">
<line y2="360" x2="0"></line>
<text y="-3" x="0" dy="0em" style="text-anchor: middle;"></text>
</g>
<g class="tick" transform="translate(72.60000000000001,0)" style="opacity: 1;">
<line y2="360" x2="0"></line>
<text y="-3" x="0" dy="0em" style="text-anchor: middle;"></text>
</g>
<g class="tick" transform="translate(145.20000000000002,0)" style="opacity: 1;">
<line y2="360" x2="0"></line>
<text y="-3" x="0" dy="0em" style="text-anchor: middle;"></text>
</g>
<g class="tick" transform="translate(217.79999999999998,0)" style="opacity: 1;">
<line y2="360" x2="0"></line>
<text y="-3" x="0" dy="0em" style="text-anchor: middle;"></text>
</g>
<g class="tick" transform="translate(290.40000000000003,0)" style="opacity: 1;">
<line y2="360" x2="0"></line>
<text y="-3" x="0" dy="0em" style="text-anchor: middle;"></text>
</g>
<g class="tick" transform="translate(363,0)" style="opacity: 1;">
<line y2="360" x2="0"></line>
<text y="-3" x="0" dy="0em" style="text-anchor: middle;"></text>
</g>
<path class="domain" d="M0,0V0H363V0"></path>
</g>
<g class="grid" transform="translate(100,100)">
<g class="tick" transform="translate(0,0)" style="opacity: 1;">
<line x2="363" y2="0"></line>
<text x="-3" y="0" dy=".32em" style="text-anchor: end;"></text>
</g>
<g class="tick" transform="translate(0,72)" style="opacity: 1;">
<line x2="363" y2="0"></line>
<text x="-3" y="0" dy=".32em" style="text-anchor: end;"></text>
</g>
<g class="tick" transform="translate(0,144)" style="opacity: 1;">
<line x2="363" y2="0"></line>
<text x="-3" y="0" dy=".32em" style="text-anchor: end;"></text>
</g>
<g class="tick" transform="translate(0,216)" style="opacity: 1;">
<line x2="363" y2="0"></line>
<text x="-3" y="0" dy=".32em" style="text-anchor: end;"></text>
</g>
<g class="tick" transform="translate(0,288)" style="opacity: 1;">
<line x2="363" y2="0"></line>
<text x="-3" y="0" dy=".32em" style="text-anchor: end;"></text>
</g>
<g class="tick" transform="translate(0,360)" style="opacity: 1;">
<line x2="363" y2="0"></line>
<text x="-3" y="0" dy=".32em" style="text-anchor: end;"></text>
</g>
<path class="domain" d="M0,0H0V360H0"></path>
</g>
</g>
</g>
<g class="maplayer overlays">
<g class="fp-overlays-1419951398667">
<g id="perimeterLayerId">
</g>
</g>
</g>
</g>
</svg>
</div>
<div>
</div>
<script>
appendPolygon();
</script>
</body>
关于css - 我可以使用带背景色的 SVG 图案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37429608/
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
有两个 SVG 元素( SVG1 和 SVG2 ),其中 SVG1 是一个包含各种元素的大区域,会不时添加、删除和重新定位。另一方面,SVG2 需要用作 图标化表示(小) SVG1 的版本,非常小,但
我知道我们可以使用 document.createElementNS("http://www.w3.org/2000/svg","line"); 创建一个嵌入到html页面。 但是,这种方法似乎不适用
我正在尝试使用 Flutter SVG 依赖项,我将 svg 放入 Assets 中,在 pubspec.yaml 中设置,并在我的小部件中设置,但是,使用黑色容器加载 svg 我已经尝试过更改 sv
为什么这样的演示:http://jsbin.com/ejorus/2/edit,将元素嵌套在另一个元素内? JS
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我正在尝试在 SVG 中做一些非常简单的事情: 将整个视口(viewport)分成两个矩形 每个矩形的宽度应为视口(viewport)宽度的 50% 每个矩形的高度应为视口(viewport)高度的
我试图将 play svg 居中放置在 SVG 圆圈的中间,但似乎不知道该怎么做。 垂直和水平。 https://jsfiddle.net/c0qshm0t/17/ 最
是否可以使用一个 SVG 形状作为另一个形状的填充? 最佳答案 您想使用 SVG Pattern .见 this example : 注意
我在 SVG 中有一个非常简单的路径。 (预览:https://i.imgur.com/nVnxcRg.png) 我想要
我可以通过以下方式创建多边形: #!/usr/bin/env python from shapely.geometry import Polygon area = Polygon(((52, 13),
我使用 require 的 SVG 没有显示。 在我的终端中,svg Assets 被发出并且路径在我的 html 中正确设置。 但是,SVG 不会显示,而其他格式(如 jpg 或 png)可以显示
我在 SVG 混合模式中遇到了问题。我在 SVG 中有四个路径,我想用公式组合它们:(1*2) + (3*4),即路径 1 和路径 2 应该使用乘法模式混合,类似地路径 3 和路径 4 应该使用混合相
我无法超过 2 个级别。 (在 Iceweasel 和 Chromium 上尝试过。) 作为测试,我尝试了 this earlier reply 中提供的代码的变体。 .这个由 3 个单独的文件组成,
请引用以下组中的clip-path 组 ID -> “container_svg_symbolGroup1_0(即圆圈符号)在我删除图表中可见的剪辑路径时不可见。 问题是什么?为什么
使用联合 js 在 svg 中创建了一个文本区域。但是,我无法在文本区域中输入任何文本。如何使文本区域可编辑? 代码: var graph = new joint.dia.Graph;
您可以不受限制地停止和重复动画,但如果您重新启动一个不确定的动画,它将失去其累积值并从初始值开始。 也许我应该用一个例子来澄清;拿这个动画: 如果我停止此动画,并开始影响同一对象旋转的不同动画(
如果我在浏览器中显示常规 SVG(作为独立文件或嵌入在 HTML 中),在拥有大量单独的路径元素和一个巨大的路径元素之间在效率上是否有任何理论上的差异? 我正在考虑将某种动画从一张图片变成一张完全不同
logo的turtlegraphics的svg路径中是否有等价物? 而不是硬编码的 x 和 y 坐标,这也迫使我在移动更相对的“增量”方法时调整控制点。 我的解决方案应该适用于 FOCS(Firefo
目前正在使用 SVG 元素与一堆 元素将使它具有一种逐渐变细的边缘。我尝试了很多不同的 CSS 样式来解决这个问题,但没有任何效果。这是一个带有针迹的圆圈的代码:
我是一名优秀的程序员,十分优秀!