Algorithm for transforming an image to a section of an ellipse

Completed Posted Oct 22, 2010 Paid on delivery
Completed Paid on delivery

Create an algorithm in C# to warp an image around the section of an ellipse or elliptical arc.

The image will be repeated a number of times to wrap around the elliptical section. The number of repeats will be determined parameters for the spacing and scaling of the image.

The image will be warped to bend around the section of the ellipse given a justification that specifies if the image is on the outside, the inside, or the center line of the ellipse.

The width of the image will remain constant and the height of the image may or may not be scaled to fill the given spacing.

The program will first compute a GDI+ Region of the effected area from the given parameters. The region will consist of the pixels to be filled by the instances of the image around the given ellipse using the given parameters.

A second algorithm will take any point within the region and calculate a point within the source image. The algorithm will use Nearest Neighbor interpolation.

## Deliverables

1. The parameters and their data types for the shape of the ellipse will be as follows:

1.1. Center point ([login to view URL])

1.2. Major axis length (float)

1.3. Minor axis length (float)

1.4. Start angle (double)

1.5. End angle (double)

2. The parameter for the image justification will be an enum with the following values:

2.1. Inside

2.2. Outside

2.3. Center

3. An integer parameter will control the number of images around the elliptical section. The images will be distributed evenly along the ellipse with the first image centered at a given angle if it is a whole ellipse (start angle and end angle is the same) and the edges of the image will start and end at the end points of the elliptical arc if it is not a whole ellipse.

4. A boolean parameter will control if the image is scaled to fill the spacing. If the parameter is true, the height of the image will be scaled to completely fill the given spacing. If the value is false, the image will not be scaled, and gaps or overlaps may occur.

5. The width of the image around the elliptical section will be kept constant and will be the same as the width of the original section.

6. The aspect ratio of the pixels in the image may or may not be square and will be controlled by two parameters:

6.1. DpuX - the number of pixels in a unit length along the X axis.

6.2. DpuY - the number of pixels in a unit length along the Y axis.

Dividing these number can give you the appropriate aspect ratio of the pixels. The source image and the destination image will share the same aspect ration.

7. Compensation will have to be made for the aspect ratio as the image is rotated around the ellipse to produce images that are the same width and height visually.

8. All scaling will be done with Nearest Neighbor interpolation and no Antialiasing will be required.

C# Programming Microsoft Windows Desktop

Project ID: #3809066

About the project

7 proposals Remote project Active Oct 25, 2010

Awarded to:

alexpyrkov

See private message.

$255 USD in 14 days
(10 Reviews)
4.6

7 freelancers are bidding on average $257 for this job

yilin

See private message.

$306 USD in 14 days
(51 Reviews)
5.6
vaa2804

See private message.

$255 USD in 14 days
(10 Reviews)
5.1
bizbeesTeck

See private message.

$340 USD in 14 days
(5 Reviews)
3.1
martinedenvw

See private message.

$85 USD in 14 days
(6 Reviews)
3.2
dotnetsoftw

See private message.

$255 USD in 14 days
(2 Reviews)
2.5
midionvw

See private message.

$300 USD in 14 days
(0 Reviews)
0.0