当前位置: 首页>>代码示例>>C#>>正文


C# IGeometry.Intersect方法代码示例

本文整理汇总了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.");
 }
开发者ID:ElderByte-,项目名称:Archimedes.Geometry,代码行数:30,代码来源:Polygon2.collision.cs

示例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);
 }
开发者ID:ElderByte-,项目名称:Archimedes.Geometry,代码行数:27,代码来源:Circle2.cs


注:本文中的IGeometry.Intersect方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。