我尝试执行第一次CS106L作业GraphViz。在这个项目中,我们使用QT UI framework来显示节点和边。一切似乎工作得很好,除了线路和节点有时在我运行程序时奇怪地消失(大约四分之一)。
这是我的环境:
这是我的步骤:
下载starter code并使用qmake -spec win32-msvc2013
-tp vc
生成vs2013项目。
将以下代码添加到main.cpp
中的main函数中int nodes[5][2] = { { 0, 0 }, { 10, 10 }, { 10, 20 }, { 20, 20 }, { 20, 10 } };
int edges[4][2] = { { 1, 2 }, { 2, 3 }, { 3, 4 }, { 4, 1 } };
SimpleGraph* myGraph = new SimpleGraph();
vector<Node> nodeList;
vector<Edge> edgeList;
for (unsigned int i = 0; i < sizeof(nodes) / sizeof(nodes[0]); i++) {
Node node;
node.x = nodes[i][0];
node.y = nodes[i][1];
nodeList.push_back(node);
}
for (unsigned int i = 0; i < sizeof(edges) / sizeof(edges[0]); i++) {
Edge edge;
edge.start = edges[i][0];
edge.end = edges[i][1];
edgeList.push_back(edge);
}
InitGraphVisualizer(*myGraph);
myGraph->nodes = nodeList;
myGraph->edges = edgeList;
DrawGraph(*myGraph);
return 0;
我得到了一个包含这些代码的正方形,但是当我运行exe文件时,我绘制的图像并不总是出现(大约在4中出现)
此外,我想问一下如何更改边/节点配置并刷新图形。我试过了:
InitGraphVisualizer(*myGraph);
myGraph->nodes = nodeList;
myGraph->edges = edgeList;
DrawGraph(*myGraph);
myGraph->edges.push_back({ 1, 3 });
DrawGraph(*myGraph);
但失败了。