代码之家  ›  专栏  ›  技术社区  ›  Dead account

从中获取坐标列表系统.Windows.Media.几何形状

  •  4
  • Dead account  · 技术社区  · 15 年前

    给予 System.Windows.Media.Geometry 类实例,是否有一种简单的方法将其转换为一个轮廓和点的列表?例如,我怎么能简单地把它分解成一个 LineSegments 用于自定义渲染。

    FormattedText formattedText = new FormattedText( "Hello", ...);
    Geometry textGeometry = formattedText.BuildGeometry(new System.Windows.Point(0, 0));
    

    如何列出每个轮廓(O是一个内/外圆)和每个轮廓上的每个点?

    根据下面的答案;

        var flatten = textGeometry.GetFlattenedPathGeometry();
        PathFigureCollection pfc = flatten.Figures;
    
        foreach (PathFigure pf in pfc)
         {
            foreach (PathSegment ps in pf.Segments)
             {
                if (ps is LineSegment)
    
    1 回复  |  直到 15 年前
        1
  •  2
  •   Philip Rieck    15 年前

    Geometry GetFlattenedPathGeometry() , GetOutlinedPathGeometry() (或相关的-决定你真正想要什么)得到一个 PathGeometry Figures 得到一份数字清单。每一个 PathFigure 对象具有线段(可以是线段、贝塞尔曲线等)。

    请注意,在执行此操作时,如果您天真地执行此操作,则可能会丢失一些信息-如果可以提供任意几何图形,则可能需要执行的操作不只是调用flattedPathGeometry,以避免丢失填充信息等内容。