Graphviz API:ND_width和ND_height宏不起作用,而agsafeset带有;宽度“;及;高度“;属性-确实如此。什么';怎么了? 我正在使用CopyVIZ API,Visual C++。在调用gvLayout计算节点坐标之前,我必须设置节点宽度和高度(图中的每个节点)。问题是,ND_宽度和ND_高度宏方法似乎没有影响,而使用agsafeset设置相同的值却能如期工作。我只是不想使用基于字符串的API,比如agsafeset,因为我在循环中处理大量节点,并且更喜欢使用ND\u width(pNode)和ND\u height(pNode)(或者直接作为pNode->u.width和pNode->u.height)设置宽度和高度值。我做错了什么

Graphviz API:ND_width和ND_height宏不起作用,而agsafeset带有;宽度“;及;高度“;属性-确实如此。什么';怎么了? 我正在使用CopyVIZ API,Visual C++。在调用gvLayout计算节点坐标之前,我必须设置节点宽度和高度(图中的每个节点)。问题是,ND_宽度和ND_高度宏方法似乎没有影响,而使用agsafeset设置相同的值却能如期工作。我只是不想使用基于字符串的API,比如agsafeset,因为我在循环中处理大量节点,并且更喜欢使用ND\u width(pNode)和ND\u height(pNode)(或者直接作为pNode->u.width和pNode->u.height)设置宽度和高度值。我做错了什么,graphviz,Graphviz,以下代码不起作用(不起任何作用): 当以下代码起作用时: CStringA csaValue; csaValue.Format("%f", (double)dwWidthInPixels / dwPixelsPerInch); agsafeset(pGvzNode, "width", csaValue.GetBuffer(), ""); csaValue.Format("%f", (double)dwHeightInPixels / dwPixelsPerInch); agsafeset(p

以下代码不起作用(不起任何作用):

当以下代码起作用时:

CStringA csaValue;

csaValue.Format("%f", (double)dwWidthInPixels / dwPixelsPerInch);
agsafeset(pGvzNode, "width", csaValue.GetBuffer(), "");

csaValue.Format("%f", (double)dwHeightInPixels / dwPixelsPerInch);
agsafeset(pGvzNode, "height", csaValue.GetBuffer(), "");

注意:我使用Graphviz仅用于布局,我进行自定义渲染,所以我只需要计算给定节点宽度和高度(以像素为单位)的节点和边坐标(以像素为单位)。我在调用gvLayout(表示“点”)之前设置这些值。我正在设置agsafeset(pGvzNode,“fixedsize”,“1”和“”)

agsafeset设置节点属性,gvLayout使用这些属性来计算布局信息,而ND\u宽度和ND\u高度用于获得布局大小。在调用gvLayout之前,ND_宽度和ND_高度可以设置值,但您设置的值将被gvLayout覆盖。因此必须使用agsafeset,ND_宽度和ND_高度无法工作

CStringA csaValue;

csaValue.Format("%f", (double)dwWidthInPixels / dwPixelsPerInch);
agsafeset(pGvzNode, "width", csaValue.GetBuffer(), "");

csaValue.Format("%f", (double)dwHeightInPixels / dwPixelsPerInch);
agsafeset(pGvzNode, "height", csaValue.GetBuffer(), "");