我正在尝试更改Vertex的颜色,但只是其中一些,我需要在屏幕上显示3种不同的颜色,有人知道如何做到这一点吗? 我是这样做的:
Transformer<V, Paint> vertexPaintRed = new Transformer<V, Paint>() {
public Paint transform(V input) {
return Color.red;
}
};
但有了它我就可以改变所有Vertex的颜色。我想要改变其中一些的颜色,那些只有边缘出来的我需要一种颜色,其他有边缘到达我需要其他颜色,其余我需要另一种颜色。谢谢!
答案 0 :(得分:0)
基本思想是写一些像
这样的东西Transformer<V, Paint> vertexPaintRed = new Transformer<V, Paint>() {
public Paint transform(V input) {
if (hasOnlyOutgoingEdges(input)) return Color.RED;
if (hasOnlyIncomingEdges(input)) return Color.GREEN;
return Color.BLUE;
}
};
使用检查顶点类型的方法的适当实现。
例如,如果您知道包含顶点的JUNG Graph
,则在创建Transformer的位置,您只需编写
Transformer<V, Paint> vertexPaintRed = new Transformer<V, Paint>() {
public Paint transform(V input) {
if (jungGraph.inDegree(input) == 0) return Color.RED;
if (jungGraph.outDegree(input) == 0) return Color.GREEN;
return Color.BLUE;
}
};