- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你可以在给定的地球旋转链接中看到
https://codepen.io/Designer12/pen/pXxKEQ
在那里,你可以看到太多垂直和水平的蓝线,我只需要两三条线...
从脚本中,我从
中删除了 map 颜色var colorWater = '#fff'
var colorLand = 'transparent'
var colorGraticule = '#1288C9'
var colorCountry = 'transparent'
我认为那条线与这个变量“Graticule”有关,但我没有明白
最佳答案
根据the github :
graticule.stepMinor([step])
If step is specified, sets the minor step for this graticule. If step is not specified, returns the current minor step, which defaults to ⟨10°, 10°⟩.
var graticule = d3.geoGraticule10();
等于
var graticule = d3.geoGraticule().stepMinor([10, 10])();
因此,您可以像这样更改数组中的数字以获得您想要的内容
var graticule = d3.geoGraticule().stepMinor([90, 30])();
//
// Configuration
//
// ms to wait after dragging before auto-rotating
var rotationDelay = 1000
// scale of the globe (not the canvas element)
var scaleFactor = 0.9
// autorotation speed
var degPerSec = 6
// start angles
var angles = {
x: -20,
y: 40,
z: 0
}
// colors
var colorWater = '#fff'
var colorLand = 'transparent'
var colorGraticule = '#1288C9'
var colorCountry = 'transparent'
//
// Handler
//
function enter(country) {
var country = countryList.find(function(c) {
return c.id === country.id
})
current.text(country && country.name || '')
}
function leave(country) {
current.text('')
}
//
// Variables
//
var current = d3.select('#current')
var canvas = d3.select('#globe')
var context = canvas.node().getContext('2d')
var water = {
type: 'Sphere'
}
var projection = d3.geoOrthographic().precision(0.1)
// var graticule = d3.geoGraticule10();
var graticule = d3.geoGraticule().stepMinor([90, 30])();
var path = d3.geoPath(projection).context(context)
var v0 // Mouse position in Cartesian coordinates at start of drag gesture.
var r0 // Projection rotation as Euler angles at start.
var q0 // Projection rotation as versor at start.
var lastTime = d3.now()
var degPerMs = degPerSec / 1000
var width, height
var land, countries
var countryList
var autorotate, now, diff, roation
var currentCountry
//
// Functions
//
function setAngles() {
var rotation = projection.rotate()
rotation[0] = angles.y
rotation[1] = angles.x
rotation[2] = angles.z
projection.rotate(rotation)
}
function scale() {
width = document.documentElement.clientWidth
height = document.documentElement.clientHeight
canvas.attr('width', width).attr('height', height)
projection
.scale((scaleFactor * Math.min(width, height)) / 2)
.translate([width / 2, height / 2])
render()
}
function startRotation(delay) {
autorotate.restart(rotate, delay || 0)
}
function stopRotation() {
autorotate.stop()
}
function dragstarted() {
v0 = versor.cartesian(projection.invert(d3.mouse(this)))
r0 = projection.rotate()
q0 = versor(r0)
stopRotation()
}
function dragged() {
var v1 = versor.cartesian(projection.rotate(r0).invert(d3.mouse(this)))
var q1 = versor.multiply(q0, versor.delta(v0, v1))
var r1 = versor.rotation(q1)
projection.rotate(r1)
render()
}
function dragended() {
startRotation(rotationDelay)
}
function render() {
context.clearRect(0, 0, width, height)
fill(water, colorWater)
stroke(graticule, colorGraticule)
fill(land, colorLand)
if (currentCountry) {
fill(currentCountry, colorCountry)
}
}
function fill(obj, color) {
context.beginPath()
path(obj)
context.fillStyle = color
context.fill()
}
function stroke(obj, color) {
context.beginPath()
path(obj)
context.strokeStyle = color
context.stroke()
}
function rotate(elapsed) {
now = d3.now()
diff = now - lastTime
if (diff < elapsed) {
rotation = projection.rotate()
rotation[0] += diff * degPerMs
projection.rotate(rotation)
render()
}
lastTime = now
}
function loadData(cb) {
d3.json('https://unpkg.com/world-atlas@1/world/110m.json', function(error, world) {
if (error) throw error
d3.tsv('https://gist.githubusercontent.com/mbostock/4090846/raw/07e73f3c2d21558489604a0bc434b3a5cf41a867/world-country-names.tsv', function(error, countries) {
if (error) throw error
cb(world, countries)
})
})
}
// https://github.com/d3/d3-polygon
function polygonContains(polygon, point) {
var n = polygon.length
var p = polygon[n - 1]
var x = point[0],
y = point[1]
var x0 = p[0],
y0 = p[1]
var x1, y1
var inside = false
for (var i = 0; i < n; ++i) {
p = polygon[i], x1 = p[0], y1 = p[1]
if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside
x0 = x1, y0 = y1
}
return inside
}
function mousemove() {
var c = getCountry(this)
if (!c) {
if (currentCountry) {
leave(currentCountry)
currentCountry = undefined
render()
}
return
}
if (c === currentCountry) {
return
}
currentCountry = c
render()
enter(c)
}
function getCountry(event) {
var pos = projection.invert(d3.mouse(event))
return countries.features.find(function(f) {
return f.geometry.coordinates.find(function(c1) {
return polygonContains(c1, pos) || c1.find(function(c2) {
return polygonContains(c2, pos)
})
})
})
}
//
// Initialization
//
setAngles()
canvas
.call(d3.drag()
.on('start', dragstarted)
.on('drag', dragged)
.on('end', dragended)
)
.on('mousemove', mousemove)
loadData(function(world, cList) {
land = topojson.feature(world, world.objects.land)
countries = topojson.feature(world, world.objects.countries)
countryList = cList
window.addEventListener('resize', scale)
scale()
autorotate = d3.timer(rotate)
})
html,
body {
margin: 0;
padding: 0;
background: #555;
}
#globe {
cursor: move;
}
#current {
position: absolute;
color: white;
font-family: sans-serif;
margin-left: 4%;
margin-top: 4%;
}
<canvas id="globe"></canvas>
<script src='https://cdnjs.cloudflare.com/ajax/libs/d3/4.2.2/d3.min.js'></script>
<script src='https://d3js.org/d3-geo.v1.min.js'></script>
<script src='https://d3js.org/topojson.v2.min.js'></script>
<script src='https://bl.ocks.org/mbostock/raw/7ea1dde508cec6d2d95306f92642bc42/6aac691494f752142a67cc43c51a0fd09896dbd4/versor.js'></script>
<script src="./script.js"></script>
关于javascript - 在 Dynamic Globe Rotation 中有太多垂直和水平线我不想要太多线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56929059/
我想对齐输入,它有两个标签和一个没有任何标签的按钮,以便它们都在同一级别。 这是期望的效果: 这是我到目前为止得到的: 我通过在按钮前添加带有空白空间的标签,设法让它看起来像我想要的样子,但这并不理想
您好,我有一个关于 JavaFX 的问题。我担心答案是剥皮,我对此一无所知,但这里是。 我想在 JavaFX 中制作 Accordion/TabPane 交叉。我将尝试用文字解释自己,但在下面我已经包
这可能被认为是一个低俗的问题。然而,我还没有找到任何代码,也没有找到任何讨论如何用我的编程语言 C 来解决这个问题的论坛。已经进行了大量的尝试,并且最终都以实际上“硬编码”新数组而告终。 我正在尝试垂
我有以下代码: public Frame() { super(); setVisible(true); setDefaultCloseOperation(JFrame.EXIT
是否可以将 UIModalTransitionStyleFlipHorizontal 修改为垂直而不是水平? 我通常会使用 CATransition 来执行此操作,但该方法需要将一个 UIView
我有一个 ios5 导航的想法,我正在一个应用程序上做,我认为从 SOF 那里得到一些关于我的想法的建设性批评是明智的。 p> 想法: UIView 包含 6 个左右垂直堆叠的按钮 UIButtons
我正在努力进行一些 iOS 开发,我希望有人能够帮助我提出建议。我想实现一堆看起来像一副纸牌的 UIView。用户应该能够通过触摸刷出“卡片”。我想到了带有 pagingEnabled 的 UIScr
我想创建一个包含四张图片的入口页面作为指向其他页面的链接。但我希望这些图片显示在显示器的中间(垂直和水平)。我已经尝试了很多事情,但我做对了。我什至无法以任何方式垂直对齐图片(例如底部,您将在代码中看
我有代码在 div 的底部创建一个元素作为向下的“箭头/指针”。 我需要这样写,以便“箭头/指针”指向左侧 当前代码 - HTML 掩码 css 在 fiddle 中 https://j
下面的代码将焦点放在中间的 div 上,但该 div 出现在窗口的底部。如何使该 div 居中,使其显示在窗口的中心[垂直],而不设置固定位置。 $(function(){ $("#focus
这个问题在这里已经有了答案: Vertical Align Center in Bootstrap 4 [duplicate] (20 个答案) 关闭 4 年前。 我创建了一个由两列组成的结构,第一
演示:http://jsfiddle.net/vpH8r/2/ 我在上面创建了一个 jfiddle,试图让垂直滑动正常工作。 当前的问题是 slider 标签不会移动,并且不会出现从顶部到底部的干净滑
我正在尝试在 javascript 中创建一个垂直 slider 小部件。我不是在寻找任何插件或库,我正在尝试查看如何使用纯 javascript 完成它。我想我大概明白了。 请在此处查看到目前为止已
我正在尝试创建一个响应式导航列表,并将图像置于页面列表的中心 我已经设法接近那个,但是图像比列表更靠前。 我想像这样得到它,但似乎无法弄清楚。 任何帮助将不胜感激! 代码:https://jsfidd
有人可以帮我将导航栏居中,使其在页面上垂直居中吗? 我希望导航栏中央的链接位于顶部,而不是像现在这样向左浮动。 提前致谢 Toggle navigation
我想垂直、水平转换图像,并使用 javascript 缩放图像。目前我设法使调整大小的图像起作用,但它看起来不正确。我正在尝试使用类似于 Transform image 的东西.调整垂直移动条时,图像
这可能是一个问题,但要求太多,但我已经达到了我的极限。 我有这段 ( http://jsfiddle.net/3whTa/) CSS,它创建了一个箭头水平面包屑导航。 我想做的是将其转换为垂直。就像箭
我正在使用 opencv 进行非常简单的操作,但我无法理解为什么会出现此错误/问题。图像被操作到图像的一半(垂直)。 Mat img = imread("/Users/tanmoy/Documents
我想知道是否有人有任何技术来定位 css 生成的内容。例如: .block { height: 150px; width: 150px; border: 1px solid black;
关闭。这个问题需要更多 focused .它目前不接受答案。 想要改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭3年前。 Improve this que
我是一名优秀的程序员,十分优秀!