PDA

View Full Version : August/September Entry: Portolan Chart



Hai-Etlik
08-20-2010, 07:49 PM
I'm trying a Portolan Chart: http://en.wikipedia.org/wiki/Portolan_chart

So far I've vectorized, cleaned up, and tweaked the base image in Inkscape, and written a little program to generate the web of Rhumb Lines.

### LATEST WIP ###

28224

Hai-Etlik
08-21-2010, 06:00 PM
Cleaned up extraneous rhumb lines and rotated them slightly, and added a neatline.

### LATEST WIP ###

28251

sigurdbjohansson
08-21-2010, 06:07 PM
hello you... any chance you`d share that little rhumb program?? me wants it very bad! :)

Hai-Etlik
08-21-2010, 06:17 PM
hello you... any chance you`d share that little rhumb program?? me wants it very bad! :)


#!/usr/bin/ruby1.9.1

require 'matrix'

p=4

n=2**p

d1=600
d2=4*d1



points=Array.new(n) do |k|
theta=2*Math::PI*k/n

x=d1*Math.cos(theta)
y=d1*Math.sin(theta)

Vector[x,y]
end

def line(p1,p2,style)
"<path d=\"M#{p1.to_a.join " "} L#{p2.to_a.join " "}\" style=\"#{style}\" />"
end

puts <<EOS
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg version="1.1"
xmlns="http://www.w3.org/2000/svg">
EOS

n.times do |k|
p1=points[k]
(k...n).each do |l|#<path d="M250 150 L150 350 L350 350 Z" />
style=(k+l)%2==0? "stroke:black;stroke-width:0.5px;":"stroke:red;stroke-width:0.5px;"

opacity="opacity:#{rand*0.5+0.5}"
p2=points[l]
v=p1-p2
v=v*d2*(1.0/v.r)
p3=p1+v
p4=p2-v

# p4 - p2 - p1 - p3

print line(p1, p2, style+opacity)

print line(p4, p2, style+opacity)

puts line(p1, p3, style+opacity)

end
style="stroke:black;stroke-width:0.5px;"

theta=2*Math::PI*(k+n/4)/n

x=d2*Math.cos(theta)
y=d2*Math.sin(theta)

v=Vector[x,y]

p2=p1+v
p3=p1-v

opacity="opacity:#{rand*0.5+0.5}"

print line(p1, p2, style+opacity)
puts line(p1, p3, style+opacity)

end

puts "</svg>"

sigurdbjohansson
08-21-2010, 06:29 PM
thank you very much.

now i just need to know how to make all this code work?? heh heh..... where do i use it?? (total n00b, yes)

:) :)

Hai-Etlik
08-21-2010, 07:19 PM
thank you very much.

now i just need to know how to make all this code work?? heh heh..... where do i use it?? (total n00b, yes)

:) :)

Well, you need a Ruby runtime to run it: http://www.ruby-lang.org/en/

If it's easier, here's the SVG file output, zipped because the forum software refuses to allow SVG files. With the program you can change the number of directions, but most real portolans seem to have 16 directions.

sigurdbjohansson
08-21-2010, 07:31 PM
I`m sorry, but i haven`t got a clue here!
Where do I use the SVG file?? I tried it in Firefox, but I only got some of the image (three stars in the upper left corner)...
Is there somewhere in the code I can change the amount of "stars"?
:)

sigurdbjohansson
08-21-2010, 07:33 PM
AHA! I`m such a dumbass! You just copy and rotate the things??



But is there anyway I can get the image bigger than in my browserwindow??

Hai-Etlik
08-21-2010, 07:39 PM
AHA! I`m such a dumbass! You just copy and rotate the things??

You should be able to load it into any vector graphics program like Inkscape, Corel Draw, Adobe Illustrator, or Xara X. Then you can move it around, scale it, delete lines, etc.

sigurdbjohansson
08-21-2010, 08:00 PM
Thanks alot! I think I`ve got the hang of it now.... :)

Hai-Etlik
08-21-2010, 09:48 PM
Added a scale bar based on a style I've seen in a few actual portolans. I've added compass roses on two of the rosettes though I think they need work as they are a bit overpowering, though that may change as I add more detail (Not that portolans tend to be all that detailed.) And I've started adding indications of banks and shoals.

### LATEST WIP ###
28269

Hai-Etlik
08-22-2010, 01:09 AM
Modified the rhumb line program and regenerated them and created a new, lower profile rose. The new program can insert the roses at the correct points supports more easily configurable line styles.

### LATEST WIP ###
28279

Hai-Etlik
08-22-2010, 11:30 PM
Still trying to get the shoals looking right, the dots are quite a bit bigger now

I've added my standard parchment filter to the background and started experimenting with a filter for some stains.

### LATEST WIP ###
28337

Hai-Etlik
08-23-2010, 03:44 AM
Improved the stained look and made start on adding the names of coastal towns. Right now the names are just placeholders.

### LATEST WIP ###
28339

Sorry, I'm not sure why this post got shifted up here

Ascension
08-23-2010, 05:59 PM
Should you succeed in naming all of the stuff that will soon be coming then my hat will surely be tipped.

Hai-Etlik
08-23-2010, 06:09 PM
Should you succeed in naming all of the stuff that will soon be coming then my hat will surely be tipped.

Well I'm planning to automate that bit. I just need to position them all and then break out the Ruby once again. I am thinking of trying to add some regional variation in the name generation. And maybe perturb the text size a bit to give it more of a hand written look.

Hai-Etlik
08-23-2010, 11:27 PM
Let there be Names

For now I'm calling this language 'Elven' and I have a 'Dwarven' language generator made up too. 'Sana', 'Sono', and 'Gada', mean something like 'Town', 'City', or 'Port'. Or maybe 'Saint', 'Magic', 'Tree', or 'Cheese', who knows with Elves. I may also try splitting it into two regional dialects.

I've also smoothed out some 'unexplored' bits at the edges. That may be where I'll put the 'Dwarves', assuming it's an 'Elven' map.

### LATEST WIP ###
28364

Hai-Etlik
08-24-2010, 04:01 PM
There are now two languages, one of which has a regional dialect.

### LATEST WIP ###
28390

Hai-Etlik
08-25-2010, 05:27 AM
Tweaked the stains a bit, and created yet another filter for the link layers. This includes a slightly blurred copy, a perlin noise based mask, and a displacement map.

I also gave the filled in bits of the roses a 'by hand' treatment.

I may continue working on it in the remaining time, but I've achieved what I set out for and I'd be happy with this as my final version. I'll also try to put the Ruby scripts, at least the line generator, into a more usable form and post it in the resources forum.

The final rendering with all the filters turned on took 3m 47s.

### LATEST WIP ###
28405

tilt
08-26-2010, 07:08 AM
very nice start.. looking forward to seing more :)

Hai-Etlik
08-27-2010, 08:23 PM
I was playing around with yet another filter effect to add a bit of colour contrast between the water and the land, and got some really strange but cool results, though not exactly what want for this map.

28503

Ascension
08-27-2010, 11:50 PM
It does look pretty nifty, though.

Hai-Etlik
08-28-2010, 12:13 AM
Resolved the glitch in the new filter, adjusted the parchment colour and stains a bit, and tweaked some labels that were hard to read where they overlapped other lines.

### LATEST WIP ###
28508

Also I've been working on the line generator script some more.

tilt
08-28-2010, 03:27 AM
hmmm.. my first comment was for map #2 in the row - but somehow ended up as you were almost finished.. well, still looking good - the many lines are a bit distracting in my humble opinion :)

Hai-Etlik
08-28-2010, 04:23 AM
hmmm.. my first comment was for map #2 in the row - but somehow ended up as you were almost finished.. well, still looking good - the many lines are a bit distracting in my humble opinion :)

Thanks, I had them at a lower opacity early on, but shifted them back to full while I was editing and then got used to it. I had intended to dampen them down a bit and forgot.

So, a bunch of opacity tweaking later:

### LATEST WIP ###
28515