user980058
user980058

Reputation: 511

test if square overlaps poly in c++ w/ directx (optional)

how would I go about checking to see if a triangular poly is present within a square area? (I.E. picture a grid of squares overlaying a group of 2d polys.)

Or even better, how can I determine the percentage of one of these squares that is occupied by a given poly (if at all).

I've used directx before but can't seem to find the right combination of functions in their documentation. - Though it feels like something with ray-tracing might be relevant.

I use c++ and can use directx if helpful. Thanks for any suggestions or ideas. :)

Upvotes: 0

Views: 195

Answers (3)

Trang HUỳnh
Trang HUỳnh

Reputation: 1

You might consider the clipper library for doing generic 2D polygon clipping, area computation, intersection testing, etc. It is fairly compact and easy to deal with, and has decent examples of how to use it.

It is an implementation of the Vatti clipping algorithm and will handle many odd edge cases (which may be overkill for you)

Can ho celadon city - vinhomes central park

Upvotes: 0

WildCrustacean
WildCrustacean

Reputation: 5966

You might consider the clipper library for doing generic 2D polygon clipping, area computation, intersection testing, etc. It is fairly compact and easy to deal with, and has decent examples of how to use it.

It is an implementation of the Vatti clipping algorithm and will handle many odd edge cases (which may be overkill for you)

Upvotes: 4

Aeluned
Aeluned

Reputation: 789

There are a few ways to do this and it's essentially a clipping problem.

One way is to use the Cohen–Sutherland algorithm: http://en.wikipedia.org/wiki/Cohen%E2%80%93Sutherland

You would run the algorithm 3 times (once for each triangle edge).

You can then find the percentage of area occupied by calculating area(clipped_triangle) / area(square_region).

Upvotes: 2

Related Questions