加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 获取几何长度

发布时间:2020-12-15 17:26:33 所属栏目:百科 来源:网络整理
导读:有谁知道在像素中获取 WPF几何的长度的有效方法? 我知道WPF中的几何是基于矢量的,因此实际上没有像素长度.但必须能够根据可见的绘制图像获得长度.我的意思是如果我在1024×800像素图像中绘制一些几何图形,则必须能够得到它们的长度. 我在这里错了,还是有任
有谁知道在像素中获取 WPF几何的长度的有效方法?
我知道WPF中的几何是基于矢量的,因此实际上没有像素长度.但必须能够根据可见的绘制图像获得长度.我的意思是如果我在1024×800像素图像中绘制一些几何图形,则必须能够得到它们的长度.

我在这里错了,还是有任何可能有效的方法来获取这些信息?

先感谢您!

迈克尔

解决方法

我想出了一个解决方案,但不知道这是否是最有效(最快)的方式.请留下您的意见 – 谢谢大家!

public static double GetLength(this Geometry geo)
    {
        PathGeometry path = geo.GetFlattenedPathGeometry();

        double length = 0.0;

        foreach (PathFigure pf in path.Figures)
        {
            Point start = pf.StartPoint;

            foreach (PolyLineSegment seg in pf.Segments)
            {
                foreach (Point point in seg.Points)
                {
                    length += Distance(start,point);
                    start = point;
                }
            }
        }

        return length;
    }

    private static double Distance(Point p1,Point p2)
    {
        return Math.Sqrt(Math.Pow(p1.X - p2.X,2) + Math.Pow(p1.Y - p2.Y,2));
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读