Find Jobs
Hire Freelancers

Algorithm for transforming an image to a section of an ellipse

$100-400 USD

Completed
Posted over 13 years ago

$100-400 USD

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.
Project ID: 3809066

About the project

7 proposals
Remote project
Active 13 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
Awarded to:
User Avatar
See private message.
$255 USD in 14 days
5.0 (10 reviews)
4.6
4.6
7 freelancers are bidding on average $257 USD for this job
User Avatar
See private message.
$306 USD in 14 days
4.3 (51 reviews)
5.6
5.6
User Avatar
See private message.
$255 USD in 14 days
4.6 (10 reviews)
5.1
5.1
User Avatar
See private message.
$340 USD in 14 days
5.0 (5 reviews)
3.1
3.1
User Avatar
See private message.
$85 USD in 14 days
5.0 (6 reviews)
3.2
3.2
User Avatar
See private message.
$255 USD in 14 days
2.0 (2 reviews)
2.5
2.5
User Avatar
See private message.
$300 USD in 14 days
0.0 (0 reviews)
0.0
0.0

About the client

Flag of UNITED STATES
Atlanta, United States
5.0
14
Payment method verified
Member since Aug 14, 2009

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.