- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里和 D3 网站上有几个关于如何沿着 path
找到中心点(或任何点)的问题,但是我似乎找不到如何做它带有 行
。
我做了一个simple jsfiddle这里。本质上,我需要在一条线上的一个点上添加一个形状(使用 jsfiddle 中的文本使其更清晰)(为简单起见,我们说中间)
所以我有一个 svg:
var canvas = d3.select('body').append('svg').attr('width', 500).attr('height', 500);
并添加一行(位置固定,不来自数据)
var line = canvas.append('line').attr('x1', 50).attr('y1', 50).attr('x2', 250).attr('y2' , 150);
我添加一些文本只是为了演示到该行的顶部和底部
canvas.append('text').attr('x', line.attr('x1')).attr('y', line.attr('y1')).text('top');
canvas.append('text').attr('x', line.attr('x2')).attr('y', line.attr('y2')).text('bottom');
path
有获取中心点和宽度/BBox 等的方法,但 line
似乎没有。
有人知道如何实现吗?
不过,我最初的想法只是获取 x1/x2 值之间的差异,如下所示:
canvas.append('text')
.attr('x', parseInt(line.attr('x2') - line.attr('x1')))
.attr('y', parseInt(line.attr('y2') - line.attr('y1')))
.text('just looks a bit off');
但是正如您将从 jsfiddle 中看到的那样,它只是以某种方式关闭。
有人想指出我的错误吗?
最佳答案
我猜,这会起作用:
var lineData = {x1: 50, y1: 50, x2: 250, y2: 150};
var canvas = d3.select('body').append('svg').attr('width', 500).attr('height', 500);
var line = canvas.append('line').attr('x1', lineData.x1).attr('y1', lineData.y1).attr('x2', lineData.x2).attr('y2', lineData.y2);
console.log(line);
var x = lineData.x1 + Math.abs(lineData.x2 - lineData.x1) / 2;
var y = lineData.y1 + Math.abs(lineData.y2 - lineData.y1) / 2;
console.log([x,y]);
canvas.append('text').attr('x', x).attr('y', y).text('X');
关于javascript - D3 一条线的中心点(不是路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31674438/
如何迭代(一行)分割函数给我的每个类? 我试过这个: 编辑(抱歉) $("p").attr("class").split(' ').each (function (i,n){alert(n)}
我有一条垂直线和一条水平线,当我动态调整我的 Canvas 父级时,我想调整它们的大小。 (地标) 我希望水平线始终距 Canvas 的左右边界 25 处,距底部边界 13 处。 垂直线也是如此,距上
我有一个 y 变量,我试图在图形的顶部和底部针对两个相关的 x 轴绘制它(例如 y="立方体中的事物数",x1="立方体的边长", x2="立方体的体积")。我在 numpy 数组中有 y、x1、x2
我想画一条简单的水平线,并在这条线 flex 的地方制作动画。我有这个动画的视频。你能给我一些建议如何开始以及我必须使用哪个 js/css 吗? 都是关于矩形底部的线: http://www.stop
我是一名优秀的程序员,十分优秀!