Figuring Out Clockwise Polygon Fill in a Program

In summary, the conversation discusses how to determine the orientation of a polygon by connecting its vertices and the importance of drawing the lines in a specific direction. The speakers mention different methods, such as converting the coordinates to polar coordinates and calculating the signed area or summing up the angles. These methods can be used in a program to determine the orientation of the polygon.
  • #1
ZippyDee
11
0
I don't know exactly how to explain this, but I'll try my best:

Let's say I have a set of points (P1, P2, P3...Pn), that are the vertexes of a n-sided polygon. As would be expected, the polygon is drawn simply by connecting the points in order (P1 to P2, P2 to P3, Pn to P1).

This is the hard part to explain...
The lines need to be always drawn "clockwise" rather than "counterclockwise." I'm not sure if that really makes any sense...


I've attached a picture that may help.

Notice that for the top polygon, when going from any point to the next point (for example P1 to P2), the fill color is always on the right hand side of the line between the points (as if you were standing on P1 and facing P2), but for the bottom polygon, the fill is always to the left of the line.


I know all the x/y coordinates of each point, and therefore can find the angle of any line from one point to another.

How do I mathematically figure out if the filled part is consistently on the right hand side of every line.

Thank you so much in advance!
-Zippy Dee
Ted Newman


Also, please note that this is for a program I am making, so positive Y is moving downward rather than upward.
 

Attachments

  • Screen shot 2010-09-25 at 10.37.04 PM.png
    Screen shot 2010-09-25 at 10.37.04 PM.png
    5 KB · Views: 536
Mathematics news on Phys.org
  • #2
Can you convert them to polar coordinates and sort them according to their angular coordinate?

Find the angle of point 1, and subtract this angle from every point - an effective coordinate transform to put point 1 on the x-axis. This only works if the shape is convex. Otherwise you could go a longer way- create a vector field modelling the free vortex centered in the middle of the polygon, and perform the line integral around the edge of the polygon. If you go one direction you get a positive circulation, and the other direction you get a negative circulation.
 
  • #3
Calculate

[tex]\sum_{i=1}^n x_i y_{i+1} - x_{i+1} y_i[/tex]

in which [tex](x_i, y_i)[/tex] are the coordinates of the vertices. This will give you twice the signed area of the polygon, i.e. if the sign is positive, the ordering is counter-clockwise, otherwise it is clockwise.
 
  • #4
Awesome, thanks! That's exactly what I was looking for!
 
  • #5
I just realized that I could also sum up the angles and use that result...I would then either get 360 or -360, unless there were some lines in the polygon that crossed. Which number meant what would depend on whether I sum the interior or exterior angles.
 

FAQ: Figuring Out Clockwise Polygon Fill in a Program

1. What is clockwise polygon fill in a program?

Clockwise polygon fill is a method used in computer graphics programming to determine the direction in which a polygon is filled. It is used to determine the order in which pixels are filled in order to create a solid shape.

2. How does clockwise polygon fill work?

Clockwise polygon fill works by analyzing the vertices of a polygon in a clockwise direction. Starting from the topmost vertex, the algorithm checks each pair of adjacent vertices and determines if the polygon edge connecting them is going in a clockwise or counterclockwise direction. Based on this information, the algorithm fills in the pixels in a specific order to create a solid shape.

3. Why is clockwise polygon fill important in computer graphics?

Clockwise polygon fill is important in computer graphics because it ensures that the pixels are filled in the correct order to create a solid shape. If the pixels are filled in a different order, the resulting shape may appear distorted or incomplete. Clockwise polygon fill also helps to avoid issues such as overlapping or intersecting lines.

4. Are there any limitations to clockwise polygon fill?

While clockwise polygon fill is a commonly used method, it does have some limitations. This method only works for convex polygons, which are polygons that do not have any indentations or concave corners. Additionally, clockwise polygon fill may not be the most efficient method for filling large or complex polygons, as it requires a significant amount of computation.

5. How can I implement clockwise polygon fill in my program?

To implement clockwise polygon fill in a program, you can use a variety of algorithms such as the Scanline algorithm or the Seed Fill algorithm. These algorithms follow the same basic principles of analyzing vertices in a clockwise direction and filling in pixels accordingly. There are also many resources and libraries available online that can help with implementing clockwise polygon fill in your program.

Back
Top