2014-01-17 68 views
1

我正在尝试更改顶点的颜色,但其中一些需要3种不同的颜色,有人知道该怎么做? 我在做这样的:如何在JUNG中更改特定顶点的颜色

Transformer<V, Paint> vertexPaintRed = new Transformer<V, Paint>() { 
    public Paint transform(V input) { 
     return Color.red; 
    } 
}; 

但随着它我就可以改变所有顶点的颜色。我想改变其中一些颜色,那些只有边缘出来我需要一种颜色,其他有边缘刚刚到达我需要其他颜色,其余的我需要另一种颜色。谢谢!

回答

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<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; 
    } 
};