本文整理汇总了C#中IGeometry.Intersect方法的典型用法代码示例。如果您正苦于以下问题:C# IGeometry.Intersect方法的具体用法?C# IGeometry.Intersect怎么用?C# IGeometry.Intersect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IGeometry
的用法示例。
在下文中一共展示了IGeometry.Intersect方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Intersect
public IEnumerable<Vector2> Intersect(IGeometry other, double tolerance = GeometrySettings.DEFAULT_TOLERANCE)
{
if (other is LineSegment2)
{
return this.InterceptLine(other as LineSegment2, tolerance);
}
else if (other is Circle2)
{
// inverse call
return ((Circle2) other).Intersect(this);
}
else if (other is Polygon2)
{
return InterceptPolygon(other as Polygon2, tolerance);
}
else if (other is Rectangle2)
{
return InterceptPolygon((other as Rectangle2).ToPolygon2(), tolerance);
}
else if (other is Arc)
{
// inverse call (arc handles this case for us)
return other.Intersect(this, tolerance);
}
else if (other is IShape)
{
return InterceptPolygon(((IShape)other).ToPolygon2(), tolerance);
}
throw new NotSupportedException("Polygon intersection with " + other.GetType().Name + " is not supported yet.");
}
示例2: Intersect
public virtual IEnumerable<Vector2> Intersect(IGeometry other,
double tolerance = GeometrySettings.DEFAULT_TOLERANCE)
{
if (other is LineSegment2)
{
return this.InterceptLine(other as LineSegment2, tolerance);
}
else if (other is Circle2)
{
return this.InterceptCircle(other as Circle2, tolerance);
}
else if (other is Polygon2)
{
return InterceptPolygon(other as Polygon2, tolerance);
}
else if (other is Rectangle2)
{
return InterceptPolygon((other as Rectangle2).ToPolygon2(), tolerance);
}
else if (other is Arc)
{
// inverse call:
return other.Intersect(this, tolerance);
}
else
return this.ToPolygon2().Intersect(other, tolerance);
}