Closed

Shape Intersection Function Library (Programming/Geometry)

This project received 27 bids from talented freelancers with an average bid price of $375 USD.

Get free quotes for a project like this
Employer working
Project Budget
N/A
Total Bids
27
Project Description

We need a programmer who knows geometry and mathematics very well to write us 29 methods in the C# language.
These methods must be relatively self-contained, but may rely on the C#//NET Math library (No P/Invokes or system functions as shortcuts). In addition, they should be as computationally inexpensive as possible.

These methods work with the following 2-dimensional shapes: polygon, rectangle, circle; and non-shapes: line-segment and point (XY). We need a intersection and containment methods that return True/False for all possible combinations. The polygons we are working with use all straight-edges and may be concave or convex (but no bezier curves, and thus should be represented as an array of line segments). We understand that a rectangle is a polygon, but we also know there are computationally less-expensive ways to work with rectangles, which is why we've separated them.

ACCEPTANCE CRITERIA
-Prior to acceptance for payment we will perform out own tests using these methods on our machinery. As long as the tests pass and are clearly optimized to run quickly, you're set.
-You must utilize the method names and arguments as defined. There should be no need for us to pass extra arguments or solve certain values ourselves beyond the description of the shapes/lines/points.

INTERSECTION METHODS
Description:
The intersection methods described below must utilize the arguments as shown, and should return only a True/False value of whether the shapes intersect. The intersection test must include scenarios where one shape is completely within another shape (treated as an intersection). There is not a need to determine the points of intersection.

[poly] arguments should be treated as an array of lines (each element of which has an X1, Y1, X2, Y2 value).

Method Definitions:
*See attached document..

CONTAINMENT METHODS
Description:
The containment methods described below must utilize the arguments as shown, and should return only a True/False value of whether the second shape is fully contained within the first (all edges equal to or within the boundaries). This is different than the intersection methods, where boundaries may cross inside and outside of the shapes.

[poly] arguments should be treated as an array of lines (each element of which has an X1, Y1, X2, Y2 value).

Method Definitions:
*See attached document..

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online