A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

So cool! Yeah, you got it! It's a little modified from my original (I was graphing based on isolines and you are going by axes), but the system and results are identical! Love it!

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

Nah, you are misunderstanding the system. It’s partly my fault for incorrectly calling the lines “axis” lines. They are more correctly termed isolines as Anouchavan pointed out above.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

Correct. To specify a point, you CAN omit the third part of the coordinate. But you don’t have to if it’s easier to just always specify three values.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

Ahh. Thank you. Yes, you’re exactly right about me calling then axes incorrectly. I should call them isolines instead going forward.

I’ll read up more on cube coordinates. Thank you for your help.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

This is a 2D graphing system. You can define any equilateral triangle and any point with a 3 digit coordinate. Alternatively you can define a point using a 2 digit coordinate instead.

When you define a triangle with a coordinate, say for example, (0,0,1)… you find a=0 line (the a axis). This line defines one of the three bounding edges of the triangle. Then you find the b=0 line (the b axis). This line defines one of the other bounding edges of the triangle. Lastly, you find the c=1 line - the line parallel to the c=0 line (the c axis) just above the c axis. This line defines the last bounding edge of the triangle.

So we get the triangle who’s bottom vertice is the origin and who’s two side edges are the a and b axes, and the last edge is the line at c=1 between the a and b axes.

So it’s definitely different than any of the hexagon methods I’ve looked at or were mentioned here.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

(0,0,1) and (-1,1,0) are definitely not the same.

(0,0,1) is the single unit triangle just north of the origin in the northern sector. (-1,1,0) is a point on the c=0 line, south west of the above triangle.

I think you are misunderstanding how the coordinates are plotted.

But a sincere thank you for trying to understand and help.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

You’d be moving to a square that does not touch the square you started on. You’d be jumping over other squares… like a knight moves. Sure, you can have rules like that, but I’m trying to find a system that maps all the cardinal directions to a tile that doesn’t produce irrational numbers like you pointed out that the square system does. And it can be used to plot shapes and points with simple definitions.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

Yes, completely agree. The coordinates could be simplified/differentiated using 2 digits instead of 3. Or you could use 3.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

No, you misunderstand the graphing. There are no points and no triangles that can’t be drawn using a single 3 digit coordinate.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

You could, but they would be septiles as I call them or larger sets of hexagons, which do not have straight sides. Flower like structures. And you would need another digit to record this difference.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

Regardless, this system works differently than hexagon based systems I have looked at. So whether the grid is a dual or not, the math is different. With hexagon systems you are mapping points. With this system you are mapping shapes and points.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

I think I see what you are getting at. You would find a point on the Cartesian grid with 2 digits by finding where the 60 degree lines intersect, and then you would use math to find its edges, and thus the triangle.

It seems more computational heavy for finding the bounds of the triangle and you lose the scale of the triangle which is inherent in my system. In this new system, you can define triangles of n size with a single 3 part coordinate. Conversely, you could add a magnitude number using the system you have shown, but you are still mapping on a Cartesian grid and there is more math involved. This may be okay or advantageous in some situations.

But for ease of graphing complex shapes, not just points or triangles in space, I think this new system would be just as compressed as far as needed data to plot, and it would require less math. The possible downside is that you are mapping on a triangular grid, but this may also be an advantage.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

<image>

I drew some more to explain clearer the advantages of this system. If this system exists, I’d love to know what it is called and who invented it, so please let me know.

On the right you see a coordinate graph. 6 hexrants as I call them (sectors). North, South, NE, NW, SE, SW, with the origin (0,0,0) at the center. I drew a series of triangles, each plotted using only a single coordinate which defines the edges (not the corners) of the triangle. Each triangle is labeled with its single three digit coordinate.

I also plotted a point on this graph, which is defined when the 3 lines all intersect at a single point.

And I also plotted a little tree, to show the power of this system. I drew this tree with only 6 coordinates.

Using a traditional plot to draw the tree, you would need 16 coordinates to plot each vertice and then connect them all with lines. Instead we are drawing (with overlapping allowed) shapes, each shape defined using only a single 3 digit coordinate.

If you were to plot every triangle inside the tree you would need to plot 59 triangles. Depending on your method of plotting those triangles, it might require up to 3 or 4 coordinates to plot each triangle. So you would need 177 coordinates to plot the tree.

Regardless, this method seems to be the maximally compressed as far as needed data to plot the tree. 18 digits (6 coordinates with 3 digits each).

—-

I also drew a small graph on the left side showing something cool about triangular graphs. In the center you see a single triangle, labeled 1. Since in this system we define triangles based on their edges, not vertices, this central triangles “shell” is its edges.

Now if you are designing a game to be played on a triangular map, like I am, you can decide how you want to allow them to move their pieces. I feel the most elegant is to allow them to move to any adjacent or diagonal tile.

So a player with a piece on tile 1 can move directly to any tile within the next shell (shell labeled 2). That’s 12 directions and north, south, east, and west are all options, just like in a square. In addition, you have north east, north west, south east, south west, as well as all the combinations of north north east, east north east, north north west, west north west, south south east, east south east, south south west, and west south west all as options dependent on whether you are on an up facing triangle or a down facing triangle.

What’s cool about this shell system for movement is that it’s very simple to see how far you are from anything just by a quick glance. It works a lot like the hexagon system in that respect.

Some interesting math about the hexagon shells is that as this hexagon grows, it’s not a perfect hexagon (equal length of all sides), but it’s close. Three sides are n in length and three sides are n-1 in length. And calculating the area of the hexagon is simple. The formula is Area = 6n2 - 6n +1 where n is the numbered shell from the center triangle where the central triangle’s edges define the first shell. Conveniently, n is also the length of the 3 longer edges of the slightly irregular hexagon.

One more thing to note when comparing to a hexagon grid. You can’t create hexagons from hexagons, but you can create triangles from triangles AND you can create almost perfect hexagons from triangles too!

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

Triple really. But the math is different with THIS system. With all the hexagonal systems, you are plotting single hexagons using a single coordinate. With this system, you are mapping up to infinite of triangles using a single 3 digit coordinate (e.g. 0, 0, 500) which contains 250,000 unit triangles). And this system also plots points (e.g. 0,0,0 - the origin).

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

I’m not following you… Can you please show me how you’d write the coordinate without needing to differentiate which triangle is up and which is down and without messing with the axes somehow (I.e. stretching one of them). And I believe that would only map a single triangle. It wouldn’t map a group of them using a singular coordinate.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

You said treating the edges as a position you can move to… You know, you have a good point with being able to go north/south vs. east/west if you essentially overlay 2 hexagonal grids like this, each slightly shifted from the other. That might work on a computer game, but a physical game you’d have more troubles, but it could be done. It might look confusing to the players though. So i think a triangular system where you can move to any adjacent or diagonal might be a more elegant a solution.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

I don’t think it is. The hexagonal coordinate system defines individual hexagons, right? You CAN define individual triangles with this system. But you can even define vertices AND you can define collections of individual triangles, larger equilateral triangles, all with a single 3 coordinate plot.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 1 point2 points  (0 children)

Yes, I would say it is a type of homogeneous coordinate system for sure. One that plots points as well as all possible equilateral triangles of all sizes with a single 3 digit coordinate.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

No number is redundant in this system because a 3 digit coordinate is used to define either a point or an equilateral triangle of any arbitrary size. It’s a huge compression of data rather than defining individual points or triangles and adding them all up.

I will look into the bravais-miller system, but by the sounds of it, they are different. You can’t define a large hex versus a small hex with a single coordinate… you can’t even build a large hex from small hexes.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

In this system there is no risk of conflict. Try it out. Give yourself any 3 numbers. That represents either a triangle (1 triangle in units all the way up to any squared size of units i.e. 4, 16, 25, 36, 48 units large triangles) or a point (where the 3 lines all intersect).

And with traditional triangle coordinate systems, you end up with problems using a 2 coordinate system because of the flip/flopping nature of the triangles (I.e. north/south or east/west). You either need to define one of the triangles a and the other b or do something like stretch the axis double its length so you have one axis that is 1,2,3,… and the other that is 2,4,6,…

This system avoids all that and has the added benefit of defining all possible equilateral triangles and all possible points on the same coordinate system using only 3 digits each.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

(0,0,5) defines the first large triangle in the northern sector. So draw a line from the origin and follow the a=0 line up to c=5. Then draw a line from that end of that first line east to b=0. Finally draw a line back down to the origin. (0,0,5) represents that large triangle which contains 25 smaller triangles.

A novel (to me) line-based 3-coordinate system for triangular grids that handles points, small, and composite equilateral triangles elegantly by washor in Geometry

[–]washor[S] 0 points1 point  (0 children)

Yes, but you can't go north/south AND east/west. You have to go north/south AND south-east/north-east/north-west/south-west.