【问题标题】:WPF Get Polygon Point CoordinatesWPF获取多边形点坐标
【发布时间】:2013-11-22 17:27:17
【问题描述】:

我有一个边数可变的 WPF 多边形。我想动态获取每个交叉点的 X、Y 坐标。

我可以使用以下代码获取多边形的相对点

 Point relativePoint = polygon.TransformToAncestor(LayoutRoot)
                          .Transform(new Point(0, 0));

如果多边形是正方形,我可以通过将高度和宽度添加到相对点来获得坐标。

  double polygonWidth = polygon.ActualWidth/2;
        double polygonHeight = polygon.ActualHeight/2;

但如果不是正方形,如何获得交叉点的所有 X、Y 坐标。

【问题讨论】:

  • 为什么不直接访问 Polygon 的 Points 属性?
  • 积分集合不返回相对坐标。基本上,我需要能够确定特定的 X、Y 坐标是否在多边形内

标签: c# wpf polygon point


【解决方案1】:

给定一个相对于多边形的坐标点,您可以轻松检查:

if (polygon.RenderedGeometry.FillContains(point))
{
    ...
}

如果你要在鼠标点击时检查,你可以通过调用来获取相对点

var point = e.GetPosition(polygon);

其中e 是MouseButtonEventArgs。

【讨论】:

  • 我以多种方式尝试了这个解决方案。但无法按照我的要求开始工作。渲染的几何图形没有给出多边形相对于窗口中位置的位置。我也尝试使用 Bounds 属性,但无法找到解决方案。您还有什么建议吗?
  • 您可以简单地通过您已经使用的 TransformToAncestor 或 TransformToDescendant 方法之一将测试点的坐标转换为几何体的坐标。
猜你喜欢
  • 2019-12-27
  • 2011-12-05
  • 1970-01-01
  • 2021-12-05
  • 1970-01-01
  • 2021-12-03
  • 2015-08-08
  • 1970-01-01
  • 2015-02-27
相关资源
最近更新 更多