【问题标题】:Intersection of Entities实体的交叉点
【发布时间】:2022-10-16 16:47:14
【问题描述】:

我想创建一个while循环翻译一些实体十字路口彼此。但是Entity.Intersects() 方法是受保护的。有没有其他解决方案可以找到与 Eyeshot 方法的交叉点? 我的实体是 XY 平面中的 Region。 (我还通过将我的区域转换为网格来尝试UtilityEx.DoOverlap(Mesh, Mesh),但它不起作用,因为我可以在我的 Eyeshot 模型中看到我的实体的重叠区域。)

public static void MoveIntersectedEntity(List<Mesh> mainList, ref Mesh movingMesh, bool moveUp = false)
{
   for (int i = 0; i < mainList.Count; i++)
    {
      while (UtilityEx.DoOverlap(mainList[i],movingMesh))
        {
          if (moveUp)
            movingMesh.Translate(0,2,0);
          else
            movingMesh.Translate(0,-2,0);
        }
    }
}

【问题讨论】:

    标签: c# intersection eyeshot


    【解决方案1】:

    我实际上找到了我的答案。 Region 类有一个交集方法,如果两个区域之间存在交集,该方法将返回一个数组。

    Region[] result = Region.Intersection(region_1, region_2);
    
    public static T[] Intersection<T>( 
       T a, 
       T b 
    ) 
       where T : Region, new()
    

    如果result.Length &gt; 0 那么我们有一个交集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-06
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      相关资源
      最近更新 更多