Page 1 of 1

DC METRO

Posted: Sat Jul 16, 2005 8:14 am
by kryptology
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
Image

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 }
} 


Posted: Sat Jul 16, 2005 12:31 pm
by LaT3x
Good job!!

Thanks

Posted: Sun Jul 17, 2005 10:31 am
by kryptology
Thanks LaT3x! Love your work.

Cheers,
K

Posted: Mon Jul 18, 2005 7:27 pm
by ism
Wow, that's pretty complex. Could see adapting it for other systems, like NYC subway. Can imagine what it'll be like once color is an option.