A few months back I silently updated my guide page for splitting a surface into equal parts. It was the result of quite some experimentation and exploration into the realm of geometrical constructs. In no way am I a mathematician doing this, almost all of my results came from trial and error, but I have to say some of the ways patterns emerged fascinated me.
The previous time I just randomly tried to come up with patterns, this time though I wholeheartedly went brute forcing. I simply intersected quite a few lines, registered where they intersected and via tables in Google docs I could see if an intersection happened at a position that was a numerical division of the whole side of the square.
Getting tired of doing measurements I instead tried to figure out formulas to calculate how many intersections different diagonals would generate. The ones I came up with which are used in the tables pictured to the left are as follows: x*y+1, x+y and x*y-1. As you can see they are very simple, this is as long as the diagonals stretched from one opposing side to the other, when I then tried to find the formula for diagonals that went between two neighboring sides I got stuck! Back to brute force!
This third method was to simply draw all the variations of intersecting lines I wanted to test, especially those I could not calculate earlier. It was again a quite exhausting process. I focused on using the number of diagonals which I could already easily get without too many steps, which means between one to five diagonals. Then I had them intersect in a number of ways before I figured that enough was enough and just stopped. By then I had spent a whole lot of time on this, and ideally I would want to explore other things more directly related to perspective drawing.
The final methods were collected during all these steps of exploration, I would add a new one for the same amount of splits when I found it, hoping that the new solution would be better optimized, meaning fewer lines used or even fewer steps. Close to the end of this research I decided I wanted to have both an easy to use pattern and one that would generate splits both vertically and horizontally, optimally a single pattern which filled both roles, this is why I continued looking for new methods for quite some time.
Not all of the final patterns are the most optimal, using the definition above, but this is because of the values I decided to prioritize. For the last patterns with many splits I was just happy to find one working solution, and I figured that it would be hard to find anything more optimized. I hope you have enjoyed a little insight into what I can sometimes obsess over, and that some of this might be helpful for you someday :) I think at least a few Googlers have had use for the guide so far!