idonaldson
idonaldson

Reputation: 475

Given a set of points, find the maximum number of triangles

Is there an algorithm that can tell you what points to connect to form a triangle given a set of points? None of the connecting lines can intersect, however triangles can be inside of other triangles.

Upvotes: 1

Views: 1929

Answers (3)

Ryan Malkin
Ryan Malkin

Reputation: 1

I am also attempting to solve this problem. This is a link to the github branch of someone who works on this for the game Ingress, which is why I'm interested in the solution. However, to my knowledge the optimal solution is found through brute force (I may be wrong on this), and has other factors it maximizes and minimizes. Also I think there are things such as taking in an E6 latitude/longitude and projects onto a Gnomonic projection to determine shortest routes, however I think this can be discounted when going through the code. I don't think there is your solution in this code, but it might be a good jumping off point for you, me, and anyone else looking into this problem.

Upvotes: 0

Darren Engwirda
Darren Engwirda

Reputation: 7015

Given a general set of points in R^d the Delaunay triangulation is often an optimal choice for tessellation.

Specifically, the Delaunay triangulation will tessellate the convex hull of the point set into a set of non-overlapping elements, ensuring that the radius of the largest circumsphere is minimised - this means that the triangulation is optimal in terms of its "compactness", or in other words, elements with good aspect ratio are generated.

Efficient algorithms to construct Delaunay triangulations are not trivial, but there are a number of good libraries out there - I can recommend Triangle, CGAL or Qhull (for high dimensional problems) also JDT is apparently an implementation in Java, though I've never used it.

Upvotes: 1

clement
clement

Reputation: 1581

I am not sure it is exactly what you are looking for, but it may be of some help: Graph Theory

Upvotes: 0

Related Questions