0

我有两个 Lists: List<Vertex> points,包含顶点 (x,y) 和一个 list List<Triangles> triangles,包含三角形的节点 (a,b,c)。因此,a,b,c 是定义三角形的点的索引。

我现在想轻松计算这些。例如,我想为每个三角形获取从点 a 到点 b 的所有向量:

list<vector> p21;
foreach triangle t p21.add(new vector(p[t.b].x-p[t.a].x, p[t.b].y-p[t.a].y));

但我确信这可以使用 linq 非常优雅地完成。

类似的东西(不使用矢量而是“顶点”)

List<Vertex> = (from triangle in triangles select a,b  and from point in points select new { pi[b].x-pi[a], pi[b].x-pi[a] };

我怎样才能做到这一点?

4

1 回答 1

0

这似乎做到了。这是非常自我描述的,并且尽可能简单。

var verticesAb = triangles
    .Select(t => new Vertex(
        points[b].x - points[a].x,
        points[b].y - points[a].y));

您可以/应该添加.ToList(),或者ToArray()如果您需要一次具体的集合。您在评论中的版本似乎也不错。

于 2013-10-07T19:52:38.243 回答