【问题标题】:WPF Is Polygon inside a CanvasWPF 是画布内的多边形
【发布时间】:2013-08-13 17:50:29
【问题描述】:

我在列表中有一些生成的平行四边形(多边形),我将它们添加到画布中。在我这样做之前,我想确定是否有平行四边形不在画布的范围内。如果外面有平行四边形,我可以删除它们,因为用户无论如何也看不到它们。

是否有(快速)方法来测试多边形是否在画布内(在矩形内)? 也许我可以使用区域并测试交叉点,但我不知道如何从多边形创建区域。

【问题讨论】:

  • 不是一个快速的方法。除非您要处理数百个或更多不可见的多边形,否则最好将它们全部添加到画布中。

标签: c# wpf wpf-controls polygon intersection


【解决方案1】:

您可以检查从多边形几何的Bounds 属性返回的矩形是否与画布矩形相交:

var canvasRect = new Rect(canvas.RenderSize);
var polygonRect = polygon.RenderedGeometry.Bounds;
var intersects = canvasRect.IntersectsWith(polygonRect);

【讨论】:

  • 这正是我要找的。非常感谢,效果很好!
猜你喜欢
  • 2012-11-28
  • 2018-12-22
  • 1970-01-01
  • 2013-03-20
  • 2011-10-14
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2015-06-04
相关资源
最近更新 更多