View Full Version : Compass wheel in GIMP (Please Improve)

12-12-2008, 01:47 AM
Okay, Redrobes inspired thought in joćo paulo's compass card tutorial thread. I tried one of his ideas and got a fuzzy mess... so I tried some ideas until I got something that worked.

This is a fairly simple process, but has a lot of really basic steps that I would not be surprised in the least if they could be improved on/replaced with fewer steps.

Any who:

What you need:

A computer with GIMP (you need a version that supports the resizing of selections)...

NOTE: I used different line colors for each layer. You don't have to, it was just easier for me to see this way. (And hopefully assist those reading this tutorial.)

Step one:

In whatever image you're working with create a new transparent layer. (I did this in a blank image with a plain white layer on bottom.) Use the Rectangle select to start a selection, then use the tool options to set the selections size to an odd number pixel length square. (I used 201 px by 201 px).

Then go to Select->Boarder and choose 1px, now fill the selection with a color.

NOTE: Step one can be ignored by starting a blank image the size you want to begin with.


Step Two:

Make a new layer. Use the circle select to create a selection that has the same dimensions as the square. (You can use the mouse resizing and positioning to drag the selection tool's "box" to contain the square in the previous layer.


Step Three:

New layer again (the layers will help later on, don't try this on one layer). Now with the pencil tool, set to 1px, start at one corner of the square and draw a straight line to the opposite corner. Then do this again for other corners. This gets you four of your points, and the center of the circle (which will make the compass wheel) clearly marked.


Step Four:

In the same layer from the middle of the "X" created by the two lines, draw straight lines leading out from it to the edges of the square/circle. This gets you all eight points of the compass. Now to connecting the "edges" of the star/compass.


(Steps 3 and 4 are one of the things I'm expecting someone has a better way to do. I just haven't found a good way to do it yet myself, and since I did this, then turned around and looked my undo history and started making step images all in less than 40 minutes. I'm sorta happy with it.)

12-12-2008, 02:00 AM
Step 5:

Create another new layer. Then use the 1 px pencil to connect top center endpoint to the bottom right endpoint on the circle (DO NOT GO TO THE SQUARE EDGE: This gets you a neat shape, but not really what we're looking for.) Then connect that to the middle left endpoint. (I had removed the blue line outside the circle because the first time I tried it this way, I went to the square's edge and got confused fast.)


Step 6:

Use the Select by Color tool to select the angle you just created. Copy it and paste it, then use the flip tool to flip it horizontally. Now move it so it lines up with the opposing points and anchor it.


Step 7: This is just a repeat of step 6, but you need to set the flip tool to vertical (or while it's on horizontal CTRL+Click will do this). Again move it into place and anchor it.


Next: One more set of lines to add that "depth" illusion... and clean up.

12-12-2008, 02:23 AM
Step 8:

One last layer, now use the 1px pencil to start a line at the intersection of edges between points two and there (counting from the top center and going clockwise) to the intersection of edges between points six and seven. Then do this again for the intersection of edges between points eight and one, and intersection of edges between points four and five.

If you're doing all this with the same dimensions I did, the intersections are kinda weird. There's a zoomed in image below of which pixels (colored red) I chose for the first line's endpoints. This was the hardest part... so if you are using different dimensions be prepared to re-do this step a few times. but you should end up with these two lines intersecting in the "center" created by the points intersections. (Wow I wrote that, and I'm confused...) :|


Step 9:

Use the select by color tool to select these lines, and copy, paste, flip horizontally, and adjust. (If you are using the same dimensions I did, and picked the same points I did, you shouldn't have to move the new lines.)


Step 10 CLEAN UP:

Here's where the layers come in. Go back to each layer and erase sections of lines you don't want. (You can completely remove the layer with the square (and optionally the circle)). Make sure that when all the layers you want parts of the lines from are visible, that you don't have any breaks. If you're using the single pixels pencil like I am then a pixel diagonally placed from its neighbor is not a break. By using the layers, I was able to erase sections from one color without goofing up things I knew I wanted to keep.

Once you've got all the lines you want, and none you don't... you can merge all the line layers and if you're using different colors, use the select by color tool to select everything but the background, and make whats left all one color. (I actually made one last new layer, and the selected all the lines from the layers below it and put color in the layer on top, instead of merging the layers.)

Done! Decorate as needed from here.


01-26-2009, 06:30 PM
This looked relatively simple, so I wrote a script to take care of it. The wheel can be anywhere from 301x301 to 3001x3001. The outer ring can be from 1-15 pixels thick. The pen that makes the compass lines is three pixels wide. The width of the arrows can also be controlled by the "Inner Arrow Thickness" command. I've attached the script (zipped) as well as the wheel that results from the script run with is default parameters.

Hope this helps!

01-28-2009, 11:53 AM

I placed a copy of this post in the sctions/scripts forum here:

-Rob A>

01-28-2009, 02:57 PM
I couldn't remember being inspirational so had to look up my comment. Nicely done script work there. I reckon that many will make use of it - so repped !

01-29-2009, 07:28 PM
Thanks for the script. It's definitely a tedious method to do by hand, but I just couldn't seem to find a simpler way.

01-29-2009, 09:10 PM
Many thanks for the rep points! Not bad for a newbie, eh? :-)

Glad to help out. The first run through was drawing each one of those arrows on a separate layer, rotating them, setting the layer mode to darken only, and then flattening the image. That took WAY too long on a larger canvas, so I bit the bullet and did the math. After a few false starts, I finally got it working properly.