DC METRO
Posted: Sat Jul 16, 2005 8:14 am
My first CFDG, based on Underground. I got too lazy to add in letters and turns, but maybe later. Probably could have simplied the rule set as well, but it is still fun.
DC Metro Map
DC Metro Map
Code: Select all
startshape METRO
rule METRO
{
4_WAY { }
NORTH { x -40 y -40 }
}
rule 4_WAY {
SQUARE{ y 1 b .5 }
SQUARE{ y -1 b .5 }
SQUARE{ x 1 b .75 }
SQUARE{ x -1 b .75 }
CIRCLE{ s 2 }
CIRCLE{ s 1.6 b 1 }
CIRCLE{ s 1.2 }
CIRCLE{ s .8 b 1}
L_BRANCH{ r 180 x -2 }
L_BRANCH{ x 2 }
D_BRANCH{ r 180 y -2 }
D_BRANCH{ y 2 }
}
rule D3_WAY {
SQUARE{ x -1 b .75 }
SQUARE{ y 1 b .5 }
SQUARE{ y -1 b .5 }
SQUARE{ x 1 b .75 }
CIRCLE{ s 2 }
CIRCLE{ s 1.6 b 1 }
CIRCLE{ s 1.2 }
CIRCLE{ s .8 b 1}
L_BRANCH{ r 180 x -2 }
L_BRANCH{ x 2 }
D_BRANCH{ y 2 }
}
rule D3R_WAY {
SQUARE{ x -1 b .75 }
SQUARE{ y 1 b .5 }
SQUARE{ x 1 b .75 }
CIRCLE{ s 2 }
CIRCLE{ s 1.6 b 1 }
CIRCLE{ s 1.2 }
CIRCLE{ s .8 b 1}
L_BRANCH{ r 180 x -2 }
L_BRANCH{ x 2 }
D_BRANCH{ y 2 }
}
rule L3_WAY {
SQUARE{ x -1 b .75 }
SQUARE{ y 1 b .5 }
SQUARE{ y -1 b .5 }
SQUARE{ x 1 b .75 }
CIRCLE{ s 2 }
CIRCLE{ s 1.6 b 1 }
CIRCLE{ s 1.2 }
CIRCLE{ s .8 b 1}
L_BRANCH{ x 2 }
D_BRANCH{ y 2 }
D_BRANCH{ r 180 y -2 }
}
rule L3R_WAY {
SQUARE{ y 1 b .5 }
SQUARE{ y -1 b .5 }
SQUARE{ x 1 b .75 }
CIRCLE{ s 2 }
CIRCLE{ s 1.6 b 1 }
CIRCLE{ s 1.2 }
CIRCLE{ s .8 b 1}
L_BRANCH{ x 2 }
D_BRANCH{ y 2 }
D_BRANCH{ r 180 y -2 }
}
rule D_BRANCH 6 {
SQUARE{ b .5}
D_BRANCH { y 1}
}
rule D_BRANCH {
D_STATION{ }
}
rule D_BRANCH .06 {
SQUARE{ b .5}
D3_WAY{ y 1}
}
rule D_BRANCH .06 {
SQUARE{ b .5}
D3R_WAY{ r 45 y 1}
}
rule L_BRANCH 4 {
SQUARE{ b .75}
L_BRANCH { x 1}
}
rule L_BRANCH {
L_STATION{ }
}
rule L_BRANCH .06 {
SQUARE{ b .75}
L3_WAY{ x 1}
}
rule L_BRANCH .06 {
SQUARE{ b .75}
L3R_WAY{ r 45 x 1}
}
rule D_STATION .5 {
SQUARE{ b .5}
CIRCLE{ s .9 }
CIRCLE{ s .5 b 1}
}
rule D_STATION {
SQUARE{ b .5}
CIRCLE{ s .9 }
CIRCLE{ s .5 b 1}
D_BRANCH{ y 1}
}
rule L_STATION .5 {
SQUARE{ b .75}
CIRCLE{ s .9 }
CIRCLE{ s .5 b 1}
}
rule L_STATION {
SQUARE{ b .75}
CIRCLE{ s .9 }
CIRCLE{ s .5 b 1}
L_BRANCH{ x 1}
}
rule NORTH {
ARROW { y -2.2 r 90 b 1 }
CIRCLE { s 3.5 }
}
rule ARROW {
SQUARE { s 0.6 x 1.0 }
SQUARE { s 0.6 x 1.5 }
SQUARE { s 0.6 x 2.0 }
SQUARE { s 0.6 x 2.5 }
TRIANGLE { s 1.2 x 3 r 30 }
}