2008-06-26 mkhexgrid

So I’m trying to build mkhexgrid.

  1. libpng 👌

  1. ignore libjpg for the moment 👌

  1. FreeType 2 👌

  1. libgd 👎 – I had to configure and build this inside a X11 session!

  1. fortunately I already have libz! 😄

  1. and I need the Boost C++ Libraries – I had too add -I/Users/alex/Source/boost_1_35_0 to CPPFLAGS in the Makefile

  1. mkhexgrid 👌

=> libpng | FreeType | libgd | Boost C++ Libraries | mkhexgrid

The X11 dependency was surprising. I assume there’s a better way to do it, but I don’t know what it is. The error I got without X11:

Pyrobombus:~/Source/gd-2.0.36RC1 alex$  gcc -DHAVE_CONFIG_H -I. -I/usr/local/include/freetype2 -I/usr/local/include -I/usr/local/include/libpng12 -g -O2 -MT gdft.lo -MD -MP -MF .deps/gdft.Tpo -c gdft.c  -fno-common -DPIC -o .libs/gdft.o
gdft.c:1405:35: error: fontconfig/fontconfig.h: No such file or directory
gdft.c:1468: error: parse error before '*' token
gdft.c:1468: error: parse error before '*' token

I also noticed that SVG output required px units, which is not true. I submitted the following patch to version 0.1.1:

diff -c /Users/alex/Source/mkhexgrid-0.1.1/grid.cpp\~ /Users/alex/Source/mkhexgrid-0.1.1/grid.cpp
*** /Users/alex/Source/mkhexgrid-0.1.1/grid.cpp~	Wed Jan 10 14:37:42 2007
--- /Users/alex/Source/mkhexgrid-0.1.1/grid.cpp	Thu Jun 26 14:06:37 2008
***************
*** 646,652 ****
              throw runtime_error(string(o) + " is not in px");
           break;
        case SVG:
!          if (u != "px") throw runtime_error(string(o) + " is not in px");
           break;
        case PS:
           if      (u == "pt") ;               // 1 point per point :)
--- 646,657 ----
              throw runtime_error(string(o) + " is not in px");
           break;
        case SVG:
!          if      (u == "pt") ;               // 1 point per point :)
!          else if (u == "cm") d *= 72/2.54;   // ~28.35 points per cm
!          else if (u == "mm") d *= 72/25.4;   // ~2.835 points per mm
!          else if (u == "in") d *= 72;        // 72 points per inch
!          else throw runtime_error(string(o) +
!             " has unrecognized unit `" + u + "'");
           break;
        case PS:
           if      (u == "pt") ;               // 1 point per point :)

Diff finished.  Thu Jun 26 14:08:15 2008

I just used copy & paste to use the same code that was available for PS output.

And finally this is the specfile I used for my map:

output=svg
outfile=hex-layer.svg
hex-side=1in
rows=8
columns=5
grid-color=B3B3FF
coord-color=B3B3FF
coord-size=10pt
coord-distance=0.7in
coord-column-start=21
coord-row-start=11

Yay!! 😄

​#Software ​#Graphics ​#Maps ​#Hex ​#RPG

Comments

(Please contact me if you want to remove your comment.)

I also found a python extension to generate hex maps in Inkscape via the Cartographers’ Guild thred index. There seems to be a bug that prevents the hexes from actually having coordinates. I’d have to investigate.

=> python extension to generate hex maps in Inkscape | Cartographers’ Guild thred index

– Alex Schroeder 2008-08-01 00:53 UTC

=> Alex Schroeder

Proxy Information
Original URL
gemini://alexschroeder.ch/2008-06-26_mkhexgrid
Status Code
Success (20)
Meta
text/gemini
Capsule Response Time
163.312884 milliseconds
Gemini-to-HTML Time
0.813726 milliseconds

This content has been proxied by September (ba2dc).