【发布时间】:2018-07-26 02:39:18
【问题描述】:
我正在尝试找到位于 ARC 扇区 A 内的点。我正在使用 D3 在 svg 和绘制点的圆圈中绘制弧线。当我用它们的开始角度或结束角度移动弧时,限制在弧内的点会改变一些属性,比如颜色或不透明度。
我正在做的是,我正在计算所有点 (X, Y) 与中心 (CX,CY) 的角度 (P_A) 并尝试检查点是否位于 ARC 手的角度之间,即开始角度 S_A 和结束角度 E_A。这是我使用的公式
P_A = atan(Y-CY,X-CX)*180.0/PI;
然后我正在检查:
if (P_A < E_A && P_A > S_A)
{
/// SAY Color of Points are changing.
}
下面给出了我用来在 D3 中生成 ARC 的代码
var startAng = 20;
var arcWidth = 1.5;
var vis = Space.append("svg")
var pi = Math.PI;
var arc = d3.svg.arc()
.innerRadius(0)
.outerRadius(radiusC)
.startAngle(S_A* (pi/180)) //converting from degs to radians
.endAngle(E_A) //just radians
vis.attr("width", "400").attr("height", "400") // Added height and width so arc is visible
.append("path")
.attr("d", arc)
.attr("fill", "white")
.style("stroke","black")
.style("opacity",0.2)
.attr("transform", "translate(200,200)");
但它无法正常工作.. 没有任何事情发生。
【问题讨论】:
-
你的代码在哪里尝试修改某些点的属性?
标签: javascript d3.js math geometry