-
Recent Posts
-
Recent Comments
- RodStephens on Use a standard Windows dialog to let the user select folders in C#
- Yohann on Use a standard Windows dialog to let the user select folders in C#
- Fred on Draw and move polygons snapping them to a grid in C#
- RodStephens on Display the local time and GMT in C#
- RodStephens on Draw a 3D surface with WPF, XAML, and C#
Archives
- January 2021
- December 2020
- November 2020
- October 2020
- September 2020
- August 2020
- July 2020
- June 2020
- May 2020
- April 2020
- March 2020
- February 2020
- January 2020
- December 2019
- November 2019
- October 2019
- September 2019
- August 2019
- July 2019
- June 2019
- May 2019
- April 2019
- March 2019
- February 2019
- January 2019
- December 2018
- November 2018
- October 2018
- September 2018
- August 2018
- July 2018
- June 2018
- May 2018
- April 2018
- March 2018
- February 2018
- January 2018
- December 2017
- November 2017
- October 2017
- September 2017
- August 2017
- July 2017
- June 2017
- May 2017
- April 2017
- March 2017
- February 2017
- January 2017
- December 2016
- November 2016
- October 2016
- September 2016
- August 2016
- July 2016
- June 2016
- May 2016
- April 2016
- March 2016
- February 2016
- January 2016
- December 2015
- November 2015
- October 2015
- September 2015
- August 2015
- July 2015
- June 2015
- May 2015
- April 2015
- March 2015
- February 2015
- January 2015
- December 2014
- November 2014
- October 2014
- September 2014
- August 2014
- July 2014
- June 2014
- May 2014
- February 2014
- January 2014
- December 2013
- October 2013
- August 2013
- June 2013
- December 2012
- September 2012
- July 2012
- June 2012
- November 2011
- May 2011
- April 2011
- February 2011
- December 2010
Categories
- .NET
- 3D
- 3D graphics
- ADO.NET
- algorithms
- animation
- API
- arrays
- attributes
- audio
- books
- C#
- C# programming
- calculations
- challenges
- classes
- clipboard
- coding
- combinatorics
- console
- controls
- cryptography
- curve fitting
- database
- debugging
- dialogs
- directories
- Drag and Drop
- drawing
- drawings
- enums
- Event
- events
- example program
- Excel
- extension methods
- extensions
- files
- finance
- fonts
- formatting
- forms
- fractals
- ftp
- games
- GDI+
- generic
- geometry
- globalization
- graphics
- html
- IDE
- image processing
- inheritance
- interfaces
- internationalization
- internet
- interoperability
- LINQ
- lists
- localization
- mathematics
- memory
- menus
- MessageBox
- methods
- miscellany
- multimedia
- network
- Office
- OOP
- operators
- parsing
- performance
- phone
- PowerPoint
- printers
- printing
- productivity
- programs
- puzzles
- recursion
- reflection
- registry
- regular expressions
- serialization
- settings
- SQL
- stories
- strings
- syntax
- system
- threading
- three-dimensional graphics
- tips
- tools
- transformations
- Uncategorized
- user interface
- variables
- VBA
- web
- Windows Forms programming
- WMI
- Word
- wpf
- XAML
- XML
Meta
Monthly Archives: July 2014
Find a number’s prime factors in C#
Once upon a time, I read an article where the author said something like this: My professor asked us whether we had prime factored our Social Security numbers yet. Being a normal person, I laughed with everyone else. Being a … Continue reading
Posted in algorithms, mathematics
Tagged algorithms, C#, C# programming, example, example program, factor, factor numbers, mathematics, prime factors, prime numbers, primes, Windows Forms programming
5 Comments
Perform geometric operations on polygons in C#
This example contains a Polygon class that perform several useful geometric operations for polygons. The following list describes the key methods provided by the class. Click the links to see posts that describe the methods in greater detail. PolygonIsConvex – … Continue reading
Posted in algorithms, geometry, graphics, mathematics
Tagged algorithms, area, bounding rectangle, C#, C# programming, calculate area, center of mass, centroid, clockwise, convex, convex hull, convex polygon, counterclockwise, example, example program, geometric operations, geometry, graphics, mathematics, minimal rectangle, orientation, orientations, point inside polygon, polygon, polygon area, polygon center of mass, polygon centroid, polygon triangulation, polygons, triangulate, triangulate polygon, triangulation, Windows Forms programming
1 Comment
Find a minimal bounding rectangle for a polygon in C#
This program assumes that its Points array contains the points in a convex polygon in counterclockwise order. If you have some other group of points, first find their convex hull and then orient the resulting polygon counterclockwise. See these related … Continue reading
Triangulate a polygon in C#
Triangulating a polygon means breaking it into triangles. This is easy for simply shapes such as rectangles. It’s even easy for convex polygons. It’s more interesting for non-convex polygons. To triangulate a polygon, first define an ear to be a … Continue reading
Find the centroid of a polygon in C#
The centroid of a polygon is its “center of mass.” If you were to cut the polygon out of cardboard or wood, the centroid would be the point where you could balance the polygon on a pin. Note that the … Continue reading
Reverse the orientation of a polygon in C#
Reversing the orientation of a polygon is easy. Simply reverse the order of its points. If the points are stored in an array of Point or PointF, you can just call the Array.Reverse method. The Polygon class’s OrientPolygonClockwise method shown … Continue reading
Determine whether a polygon is oriented clockwise or counterclockwise in C#
The post Calculate the area of a polygon in C# explains how to calculate the “signed area” of a polygon. That Polygon class’s SignedPolygonArea method returns a positive area if the polygon is oriented clockwise and a negative area if … Continue reading
Calculate the area of a polygon in C#
You can calculate the area of a polygon by adding the areas of the trapezoids defined by the polygon’s edges dropped to the X-axis. If two adjacent points along the polygon’s edges have coordinates (x1, y1) and (x2, y2) as … Continue reading
Determine whether a point is inside a polygon in C#
One way to determine whether a point lies within a polygon is to add up the angles between the point and adjacent points on the polygon taken in order. For example, if the point in question is P and points … Continue reading
Posted in algorithms, geometry, graphics, mathematics
Tagged algorithms, C#, C# programming, example, example program, geometry, graphics, inside polygon, mathematics, point inside polygon, points, polygons, Windows Forms programming
15 Comments
Determine whether a polygon is convex in C#
To see if a polygon is convex, calculate the angles at each of the polygon’s corners. If all of the angles have the same sign (either positive or negative depending on the orientation), then the polygon is convex. Rather than … Continue reading
Posted in algorithms, geometry, graphics, mathematics
Tagged algorithms, C#, C# programming, concave, convex, example, example program, geometry, graphics, mathematics, polygons, Windows Forms programming
10 Comments