Esempio n. 1
0
        /// <summary>
        /// 计算平均迹长
        /// </summary>
        /// <param name="structPlanes">要统计的结构面</param>
        /// <param name="group">要统计的结构面分组</param>
        /// <returns>返回平均迹长</returns>
        public double GetMeanLength(List <StructPlane> structPlanes, PlaneGroup group)
        {
            int n0 = 0, n1 = 0, n2 = 0;

            VisibilityCount(structPlanes, group, ref n0, ref n1, ref n2);
            return(((double)n1 + 2 * (double)n0) * (Math.PI * App.InputWidth * App.InputHeight) / (2 * (double)structPlanes.Count) / (App.InputWidth + App.InputHeight));
        }
Esempio n. 2
0
        /// <summary>
        /// 计算连通率
        /// </summary>
        /// <param name="structPlanes">要统计的结构面</param>
        /// <param name="group">要统计的结构面分组</param>
        /// <returns>返回连通率</returns>
        public double GetConnectivity(List <StructPlane> structPlanes, PlaneGroup group)
        {
            int n0 = 0, n1 = 0, n2 = 0;

            VisibilityCount(structPlanes, group, ref n0, ref n1, ref n2);
            return(((double)n1 + 2 * (double)n0) / (2 * (double)structPlanes.Count + (double)n2));
        }
Esempio n. 3
0
        /// <summary>
        /// 结构面分组
        /// </summary>
        /// <param name="structPlanes"></param>
        /// <param name="group"></param>
        /// <returns></returns>
        public List <StructPlane> Classification(List <StructPlane> structPlanes, PlaneGroup group)
        {
            List <StructPlane> list = new List <StructPlane>();

            foreach (StructPlane plane in structPlanes)
            {
                if (plane.Group == group)
                {
                    list.Add(plane);
                }
            }
            return(list);
        }
Esempio n. 4
0
        /// <summary>
        /// 结构面可见性计数
        /// </summary>
        /// <param name="structPlanes"></param>
        /// <param name="group"></param>
        /// <param name="n0"></param>
        /// <param name="n1"></param>
        /// <param name="n2"></param>
        private void VisibilityCount(List <StructPlane> structPlanes, PlaneGroup group, ref int n0, ref int n1, ref int n2)
        {
            List <StructPlane> list = Classification(structPlanes, group);

            VisibilityCount(list, ref n0, ref n1, ref n2);
        }
Esempio n. 5
0
        /// <summary>
        /// 计算平均间距
        /// </summary>
        /// <param name="structPlanes">要统计的结构面</param>
        /// <param name="group">要统计的结构面分组</param>
        /// <returns>返回平均间距</returns>
        public double GetMeanSpace(List <StructPlane> structPlanes, PlaneGroup group)
        {
            List <StructPlane> list = Classification(structPlanes, group);

            return(GetMeanSpace(list));
        }