Open Shapes

If you have a design you're proud of, share the cfdg file here. It's also a good place to ask for feedback and collaborate.

Moderators: MtnViewJohn, chris, mtnviewmark

Post Reply
dzeni
Posts: 18
Joined: Wed Sep 28, 2005 2:18 pm
Location: Auckland, New Zealand
Contact:

Open Shapes

Post by dzeni »

Below is the code for six "open shapes". The thing with these shapes is that they are outlines only with a transparent centre which is sometimes useful.

Code: Select all

rule basic_outlines
{
	fullcircle{size .5 x -10 y 10}
	osquare{size .5 y 10}
	pent{size .5 x 10 y 10}

	ohex{x -10 size .4}
	ooct{size .5}
	odec{size .4 x 10}
}

//Start draw Decagon
rule odec
{
	decline{}
	decline{r 36}
	decline{r -36}
	decline{r 72}
	decline{r -72}
	decline{r 108}
	decline{r -108}
	decline{r 144}
	decline{r -144}
	decline{r 180}
}

rule decline
{
	SQUARE{y 8.2}
	SQUARE{x .5 y 8.2}
	SQUARE{x 1 y 8.2}
	SQUARE{x 1.5 y 8.2}
	SQUARE{x 2 y 8.2}
	SQUARE{x 2.4 y 8.2}
	SQUARE{x -.5 y 8.2}
	SQUARE{x -1 y 8.2}
	SQUARE{x -1.5 y 8.2}
	SQUARE{x -2 y 8.2}
	SQUARE{x -2.4 y 8.2}
}

//Start draw Octagon
rule ooct
{
	octline{}
	octline{r 45}
	octline{r -45}
	octline{r 90}
	octline{r -90}
	octline{r 180}
	octline{r 135}
	octline{r -135}
}

rule octline
{
	SQUARE{y 6.4}
	SQUARE{x .5 y 6.4}
	SQUARE{x 1 y 6.4}
	SQUARE{x 1.5 y 6.4}
	SQUARE{x 2 y 6.4}
	SQUARE{x 2.4 y 6.4}
	SQUARE{x -.5 y 6.4}
	SQUARE{x -1 y 6.4}
	SQUARE{x -1.5 y 6.4}
	SQUARE{x -2 y 6.4}
	SQUARE{x -2.4 y 6.4}
}

//Start draw Hexagon
rule ohex
{
	hexline{}
	hexline{r 60}
	hexline{r -60}
	hexline{r 120}
	hexline{r -120}
	hexline{r 180}
}

rule hexline
{
	SQUARE{y 8.1}
	SQUARE{x .5 y 8.1}
	SQUARE{x 1 y 8.1}
	SQUARE{x 1.5 y 8.1}
	SQUARE{x 2 y 8.1}
	SQUARE{x 2.5 y 8.1}
	SQUARE{x 3 y 8.1}
	SQUARE{x 3.5 y 8.1}
	SQUARE{x 2.5 y 8.1}
	SQUARE{x 4 y 8.1}
	SQUARE{x 4.5 y 8.1}

	SQUARE{x -.5 y 8.1}
	SQUARE{x -1 y 8.1}
	SQUARE{x -1.5 y 8.1}
	SQUARE{x -2 y 8.1}
	SQUARE{x -2.5 y 8.1}
	SQUARE{x -3 y 8.1}
	SQUARE{x -3.5 y 8.1}
	SQUARE{x -4 y 8.1}
	SQUARE{x -4.5 y 8.1}

}

//Start draw Square
rule osquare
{
	sqside{}
	sqside{r 90}
	sqside{r 180}
	sqside{r 270}
}

rule sqside
{
	SQUARE{y 6.4}
	SQUARE{x .5 y 6.4}
	SQUARE{x 1 y 6.4}
	SQUARE{x 1.5 y 6.4}
	SQUARE{x 2 y 6.4}
	SQUARE{x 2.5 y 6.4}
	SQUARE{x 3 y 6.4}
	SQUARE{x 3.5 y 6.4}
	SQUARE{x 4 y 6.4}
	SQUARE{x 4.5 y 6.4}
	SQUARE{x 5 y 6.4}
	SQUARE{x 5.5 y 6.4}
	SQUARE{x 6 y 6.4}
	SQUARE{x 6.4 y 6.4}
	SQUARE{x -.5 y 6.4}
	SQUARE{x -1 y 6.4}
	SQUARE{x -1.5 y 6.4}
	SQUARE{x -2 y 6.4}
	SQUARE{x -2.5 y 6.4}
	SQUARE{x -3 y 6.4}
	SQUARE{x -3.5 y 6.4}
	SQUARE{x -4 y 6.4}
	SQUARE{x -4.5 y 6.4}
	SQUARE{x -5 y 6.4}
	SQUARE{x -5.5 y 6.4}
	SQUARE{x -6 y 6.4}
	SQUARE{x -6.4 y 6.4}
}
//End draw Square

// Start draw Ring
rule fullcircle
{
	ocircle{}
	ocircle{r 90}
	ocircle{r 180}
	ocircle{r 270}
}

rule  ocircle
{
	segment{}
	segment{r 30}
	segment{r 60}
	segment{r 90}
}

rule segment
{
	open{r 1}
	open{r 2}
	open{r 3}
	open{r 4}
	open{r 5}
	open{r 6}
	open{r 7}
	open{r 8}
	open{r 9}
	open{r 10}
	open{r 11}
	open{r 12}
	open{r 13}
	open{r 14}
	open{r 15}
	open{r 16}
	open{r 17}
	open{r 18}
	open{r 19}
	open{r 20}
	open{r 21}
	open{r 22}
	open{r 23}
	open{r 24}
	open{r 25}
	open{r 26}
	open{r 27}
	open{r 28}
	open{r 29}
	open{r 30}
}

rule open
{
	SQUARE{x 6.4}
}
// End draw Ring

// Start draw Pentagon
rule pent
{
	line{}
	line{r 72}
	line{r -72}
	line{r 144}
	line{r -144}
}

rule line
{
	SQUARE{y 6.4}
	SQUARE{x .5 y 6.4}
	SQUARE{x 1 y 6.4}
	SQUARE{x 1.5 y 6.4}
	SQUARE{x 2 y 6.4}
	SQUARE{x 2.5 y 6.4}
	SQUARE{x 3 y 6.4}
	SQUARE{x 3.5 y 6.4}
	SQUARE{x 4 y 6.4}
	SQUARE{x 4.5 y 6.4}
	SQUARE{x -.5 y 6.4}
	SQUARE{x -1 y 6.4}
	SQUARE{x -1.5 y 6.4}
	SQUARE{x -2 y 6.4}
	SQUARE{x -2.5 y 6.4}
	SQUARE{x -3 y 6.4}
	SQUARE{x -3.5 y 6.4}
	SQUARE{x -4 y 6.4}
	SQUARE{x -4.5 y 6.4}
}

Here is what the shapes look like:
Image

Music2000
Posts: 26
Joined: Mon Oct 10, 2005 3:38 pm
Location: London

Post by Music2000 »

A great example, thanks :D

Post Reply