D3js,圆圈内圆(弧),无法使用cx和cy移动内圈

时间:2017-05-22 02:01:51

标签: javascript d3.js

所以,我一直在使用这段代码作为我正在尝试创建的可视化的基础:https://bl.ocks.org/kgeorgiou/68f864364f277720252d0329408433ae

这个想法主要是在节点的弧内添加圆圈。这就是我想要 cx cy 将内圈移动到适当的位置,然后转换以照顾它们(变换)部分工作)。但是,每个圆圈的位置不会向上或向下移动( cy :()。我知道问题不是我正在计算的值,因为我也试过测试不同的通过将它们编码到代码中以检查发生了什么以及圆圈仍然不移动的值。我想知道将圆圈附加到nodeElement对象时是否存在问题。

function drawChildrenNodes(nodeElement, centroid, radius, cx, cy, options) {
var childrenNodeColor = getOptionOrDefault('childrenNodeColor', options);   
var innerWidth = getOptionOrDefault('innerWidth', options);

nodeElement.append("circle")
.attr("cx", cx)
.attr("cy", cy)
    .attr("r", radius-25)
    .attr("fill", function (d) {
        return childrenNodeColor;
    })
    .attr("stroke", function (d) {
        return 'black';
    })
    .attr("stroke-width", innerWidth)
   // .attr("transform", function(d) { return "translate(" + centroid + ")"; });

    console.log('hey listen!'+cy)

}

附件是一个关于它如何看的例子。我需要根据 cy cx 移动这些圈子。如果您发现我做错了或者您需要更多信息来了解我的问题,请告诉我。 谢谢!

Visualization (network graph)

1 个答案:

答案 0 :(得分:0)

所以,我发现了问题。它实际上是继承了父母的立场。 如果您检查index.html,则有一个部分设置圆圈的位置(所有类别)。所以,我将属性类添加到子圆圈中,现在我只需要添加指定类的位置:

import numpy as np
import cv2
cap = cv2.VideoCapture('intro.mp4')
while(cap.isOpened()):

    ret, frame = cap.read() 
    #cv2.namedWindow("window", cv2.WND_PROP_FULLSCREEN)
    #cv2.setWindowProperty("window",cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)

    if ret:
        cv2.imshow("Image", frame)
    else:
       print('no video')
       cap.set(cv2.CAP_PROP_POS_FRAMES, 0)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break


cap.release()
cv2.destroyAllWindows()

对不起噪音。我还在学习D3js :)