
Recent Posts

Recent Comments
Archives
 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
 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 nonconvex 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 Xaxis. 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
9 Comments