- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
隐藏所有落入海中的 voronoi 笔划的最“昂贵”的方法是什么?
在陆地上运行的笔划(和多边形填充)应该是可见的,而在海上的笔划应该隐藏起来。我想我的目标从下图应该很清楚了:
我可以想到两个选项:
有什么想法
吗?
最佳答案
一个简单的选项,不需要:
是使用 svg 模式。这听起来可能有点奇怪,而且我对性能影响并不乐观,但是您的 voronoi 图的模式可用于填充您的国家/地区/特征(保留边界并允许一次且仅绘制一次特征).
这要求多边形填充不依赖于地理特征,而是依赖于 voronoi - 您的图像对每个多边形使用相同的填充,但您的问题文本可能暗示情况并非如此
要使用这样的图案,请创建一个与您的 map 宽度和高度相同的图案。在模式中,放置 voronoi 图路径。最后,将每个特征的填充设置为图案:
var svg = d3.select("svg"),
width = +svg.attr("width"),
height = +svg.attr("height");
var projection = d3.geoMercator()
.scale((width - 3) / (2 * Math.PI))
.translate([width / 2, height / 2]);
var path = d3.geoPath()
.projection(projection);
var graticule = d3.geoGraticule();
d3.json("https://unpkg.com/world-atlas@1/world/50m.json", function(error, world) {
if (error) throw error;
// random points:
var circles = d3.range(20).map(function() {
return {
x: Math.round(Math.random() * width),
y: Math.round(Math.random() * height)
};
});
// voronoi:
var voronoi = d3.voronoi()
.x(function(d) { return d.x; })
.y(function(d) { return d.y; })
.extent([[-1, -1], [width + 1, height + 1]]);
// pattern:
var pattern = svg.append("defs")
.append("pattern")
.attr("id","voronoi")
.attr("patternUnits","userSpaceOnUse")
.attr("width", width)
.attr("height",height)
.attr("x",0)
.attr("y",0)
pattern.selectAll("path")
.data(voronoi.polygons(circles))
.enter()
.append("path")
.attr("d", renderCell)
.attr("fill",function(d,i) { return d3.schemeCategory20[i]; })
// append paths as normal:
var features = svg.selectAll(null)
.data(topojson.feature(world,world.objects.countries).features)
.enter()
.append("path")
.attr("class", "boundary")
.attr("d", path)
.attr("fill","url(#voronoi)"); // fill with pattern
function renderCell(d) {
return d == null ? null : "M" + d.join("L") + "Z";
}
});
.boundary {
stroke: black;
stroke-width: 1px;
}
<script src="https://d3js.org/d3.v4.min.js"></script>
<script src="https://unpkg.com/topojson-client@3"></script>
<svg width="600" height="400"></svg>
关于javascript - D3 : hide voronoi strokes that fall 'in the sea' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48922105/
我需要在用户空间中交换私有(private)数据。 因为 gun.grant 和 gun.trust 已弃用,所以我遵循了以下示例: https://gun.eco/docs/SEA#quicksta
我需要在用户空间中交换私有(private)数据。 因为 gun.grant 和 gun.trust 已弃用,所以我遵循了以下示例: https://gun.eco/docs/SEA#quicksta
你好,我正在尝试使用这个 seaglass 外观和感觉主题,但我得到的只是这个错误: Exception in thread "main" java.lang.NoClassDefFoundError
我的大学教授最近给了我们一项任务,要实现我们自己的智能指针类。在他用于复制字符串的样板代码中,我发现了这段漂亮的语法糖: while (*sea++ = *river++);// C Sting co
我有一个 JFrame 和一个 JPanel。我已将我的 JPanel 添加到我的 JFrame 中。我正在使用 Sea Glass 外观和感觉。我的 JPanel 具有通过以下代码创建的标题和边框:
使用 Sea-Glass 外观和感觉更改 JFrame 背景的正确方法是什么,到目前为止我都尝试过: frame.getContentPane().setBackground(Color.blue);
当我在 JFreechart 中使用 Sea-glass 外观和感觉时,图表正常显示,但 Sea-Glass 根本没有改变外观和感觉,尽管当在没有 Jfreechart 的情况下使用 Sea-glas
我正在尝试将 Sea Glass LAF 用于 Java 应用程序,但它给出了类未找到异常(在使用 JDK 8 的 Windows 中)。我将 seaglass-0.1.7.3 jar 文件添加到库文
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
隐藏所有落入海中的 voronoi 笔划的最“昂贵”的方法是什么? 在陆地上运行的笔划(和多边形填充)应该是可见的,而在海上的笔划应该隐藏起来。我想我的目标从下图应该很清楚了: 我可以想到两个选项:
现场海Quail Database Diagram Tool这对于创建数据库图非常有用 我刚刚创建了一个 MySQL 数据库模式图 - 非常基本的一个来感受它。 我创建了从 PHPMyadmin 运行
在我的 create-react-app 项目中,我正在构建一个带有图像的 React 组件。我想通过组件属性(或状态)传递确切的图像位置。在我的组件中,我正在使用 require,如下所示: 这给
我是一名优秀的程序员,十分优秀!