Example #1
0
    /*
     *
     * Nx = UyVz - UzVy
     *
     * Ny = UzVx - UxVz
     *
     * Nz = UxVy - UyVx
     *
     */

    public Triangle(Vertex _vertexA, Vertex _vertexB, Vertex _vertexC)
    {
        vertexA = _vertexA;
        vertexB = _vertexB;
        vertexC = _vertexC;

        center = new Vertex((vertexA + vertexB + vertexC) / 3);

        edgeAB = new Edge(vertexA, vertexB);
        edgeBC = new Edge(vertexB, vertexC);
        edgeCA = new Edge(vertexC, vertexA);

        vertexA.AddTriangle(this);
        vertexB.AddTriangle(this);
        vertexC.AddTriangle(this);

        vertexA.AddVertex(vertexB);
        vertexA.AddVertex(vertexC);

        vertexB.AddVertex(vertexA);
        vertexB.AddVertex(vertexC);

        vertexC.AddVertex(vertexA);
        vertexC.AddVertex(vertexB);
    }
Example #2
0
    public void BuildGraph()
    {
        // Build Nodes
        Console.WriteLine("Building Vertices...");
        for (int i = 0; i < Nodes; i++)
        {
            Vertex temp = new Vertex(i);
            if (Vfirst == null)
            {
                Vfirst = temp;
                Vlast  = temp;
            }
            else
            {
                temp.AddVertex(Vlast, temp);
                Vlast = temp;
            }
            //Console.WriteLine("Vertex {0} built...",i);
        }

        // Build Edges
        Console.WriteLine("Building Edges...");

        DateTime time = DateTime.Now;
        Int32    seed = (Int32)time.Ticks;
        Random   rand = new Random(seed);

        for (int i = 0; i < Nodes; i++)
        {
            int j = rand.Next(0, Nodes);
            for (int k = 0; k < j; k++)
            {
                int v2;
                while ((v2 = rand.Next(0, Nodes)) == i)
                {
                    ;                                  //select a random node, also avoid self-loops
                }
                BuildEdge(i, v2);                      //build edge betn node i and v2
                //Console.WriteLine("Edge built between {0} and {1}...",i,v2);
            }
        }
    }
Example #3
0
	public void BuildGraph() {
		
		// Build Nodes	
		Console.WriteLine("Building Vertices...");
		for(int i=0;i< Nodes; i++) {
			Vertex temp = new Vertex(i);
			if(Vfirst==null) {
			     Vfirst = temp;
			     Vlast = temp;
		        }
		        else {
			     temp.AddVertex(Vlast,temp);
			     Vlast = temp;
                        }
			//Console.WriteLine("Vertex {0} built...",i);
		}
		
		// Build Edges
		Console.WriteLine("Building Edges...");
	
		DateTime time = DateTime.Now;
		Int32 seed = (Int32)time.Ticks;
		Random rand = new Random(seed);
		
		for(int i=0;i< Nodes;i++) {
		    
		    int j = rand.Next(0,Nodes);
		    for(int k=0;k<j;k++) {
		       int v2;
		       while((v2 = rand.Next(0,Nodes))==i);     //select a random node, also avoid self-loops
		       BuildEdge(i,v2);                //build edge betn node i and v2
		       //Console.WriteLine("Edge built between {0} and {1}...",i,v2);
	              
		       
		    }		
		}
	}