コード例 #1
0
    public void Display(int numNeurons)
    {
        UI_Network_Layer_Nodes nodeTemplate = nodes[0];

        // Create all the nodes for our layer
        for (int i = 0; i < numNeurons - 1; i++)
        {
            UI_Network_Layer_Nodes node = Instantiate(nodeTemplate);
            node.transform.SetParent(contents.transform, false);
            nodes.Add(node);
        }
    }
コード例 #2
0
    private void PositionConnections(Image connection, UI_Network_Layer_Nodes otherNode, int nodeIndex, int connectedNodeIndex, double[,] weights, float scaleFactor)
    {
        //Set local position to 0
        connection.transform.localPosition = Vector3.zero;

        //Set connection width
        Vector2 sizeDelta = connection.rectTransform.sizeDelta;
        double  weight    = weights[nodeIndex, connectedNodeIndex];

        sizeDelta.x = (float)System.Math.Abs(weight * 4);
        if (sizeDelta.x < 1)
        {
            sizeDelta.x = 1;
        }

        //Set conenction color
        if (weight >= 0)
        {
            posColour.a      = 1f;
            connection.color = posColour;
        }

        else
        {
            negColour.a      = 1f;
            connection.color = negColour;
        }

        //Set connection length (height)
        Vector2 connectionVec = this.transform.position - otherNode.transform.position;

        sizeDelta.y = connectionVec.magnitude / scaleFactor;

        connection.rectTransform.sizeDelta = sizeDelta;

        //Set connection rotation
        float angle = Vector2.Angle(Vector2.up, connectionVec);

        connection.transform.rotation = Quaternion.AngleAxis(angle, new Vector3(0, 0, 1));
    }