EuclideanDistanceTo() public method

public EuclideanDistanceTo ( DendriteNode other ) : double
other DendriteNode
return double
Example #1
0
        //ノード情報から樹状突起の実際の長さと電気長などを計算
        private void SetDistanceRec(DendriteNode node, DendriteNode parent)
        {
            XMax = Math.Max(XMax, node.gx);
            XMin = Math.Min(XMin, node.gx);
            YMax = Math.Max(YMax, node.gy);
            YMin = Math.Min(YMin, node.gy);
            ZMax = Math.Max(ZMax, node.gz);
            ZMin = Math.Min(ZMin, node.gz);

            //親ノードと子ノード間のユークリッド距離
            double d = node.EuclideanDistanceTo(parent);

            node.RealDistance = parent.RealDistance + d;

            //二点のノードの平均半径
            double aveRadius = (node.Radius + parent.Radius) / 2;

            //電気的距離 R = ρ*L/(pi*r_ave^2) 定数部分は除去して R = L/r_ave^2
            node.ElectricalDistance = parent.ElectricalDistance + d / (aveRadius);

            MaxRealDistance       = Math.Max(node.RealDistance, MaxRealDistance);
            MaxElectricalDistance = Math.Max(node.ElectricalDistance, MaxElectricalDistance);

            TotalLength           += d;
            TotalElectricalLength += d / aveRadius;

            foreach (var next in node.ConnectedNodes)
            {
                if (next != parent)
                {
                    SetDistanceRec(next, node);
                }
            }
        }
Example #2
0
        //ノード情報から樹状突起の実際の長さと電気長などを計算
        private void SetDistanceRec(DendriteNode node, DendriteNode parent)
        {
            XMax = Math.Max(XMax, node.gx);
            XMin = Math.Min(XMin, node.gx);
            YMax = Math.Max(YMax, node.gy);
            YMin = Math.Min(YMin, node.gy);
            ZMax = Math.Max(ZMax, node.gz);
            ZMin = Math.Min(ZMin, node.gz);

            //親ノードと子ノード間のユークリッド距離
            double d = node.EuclideanDistanceTo(parent);

            node.RealDistance = parent.RealDistance + d;

            //二点のノードの平均半径
            double aveRadius = (node.Radius + parent.Radius) / 2;

            //電気的距離 R = ρ*L/(pi*r_ave^2) 定数部分は除去して R = L/r_ave^2
            node.ElectricalDistance = parent.ElectricalDistance + d / (aveRadius);

            MaxRealDistance = Math.Max(node.RealDistance, MaxRealDistance);
            MaxElectricalDistance = Math.Max(node.ElectricalDistance, MaxElectricalDistance);

            TotalLength += d;
            TotalElectricalLength += d / aveRadius;

            foreach (var next in node.ConnectedNodes)
            {
                if (next != parent)
                {
                    SetDistanceRec(next, node);
                }
            }
        }