从System.Windows.Media.Geometry获取坐标列表
问题描述:
给定System.Windows.Media.Geometry
类实例,是否有一种简单的方法将其转换为轮廓和点列表?例如,我怎样才能简单地将它分解为一个LineSegments
的定制渲染列表。从System.Windows.Media.Geometry获取坐标列表
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)
答
在Geometry
类,你可以使用GetFlattenedPathGeometry()
,GetOutlinedPathGeometry()
(或相关的 - 决定你真正想要)来获取PathGeometry
,然后查询Figures
得到的数字列表。这些PathFigure
对象中的每一个都有段(可能是线段,贝塞尔等)。
请注意,如果你这样做,你可能会失去一些信息 - 如果有任何几何可以给出,你可能需要做的不仅仅是调用FlattenedPathGeometry,而不会丢失填充信息之类的东西。
谢谢 - 我稍后再介绍一下,今晚向大家汇报:) – 2010-09-20 14:20:30