From 1fd2adc56bb2dc04eb4cef58403637d476b9819d Mon Sep 17 00:00:00 2001 From: John Honniball Date: Sat, 4 May 2019 20:07:34 +0100 Subject: [PATCH] New drawing: hexspiral, a hexagonal spiral. A turtle drawing, just for a change. Not yet able to scale up for the big plotters, but should be the right size for A3. Would look nice in six colours, but would be much slower with all those pen changes. --- .gitignore | 1 + Makefile | 11 ++++++++++- hexspiral.c | 25 +++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 hexspiral.c diff --git a/.gitignore b/.gitignore index c185140..c8ddba2 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,7 @@ flake fraserspiral hconic2 hexagon +hexspiral hilb hyp isogrid diff --git a/Makefile b/Makefile index 00b9143..73d5da4 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ HPGL=flake.hpgl op.hpgl dala1.hpgl hconic2.hpgl tree.hpgl dome.hpgl \ curve_stitching.hpgl cs_rosette.hpgl allover13.hpgl allover12.hpgl \ qrplot.hpgl lotus.hpgl celticstep.hpgl op_moire.hpgl sutpent.hpgl \ morphpoly.hpgl pin_circle.hpgl isogrid.hpgl circle_lines.hpgl \ - star_grid.hpgl ternary_arcs.hpgl + star_grid.hpgl ternary_arcs.hpgl hexspiral.hpgl PNG=$(HPGL:.hpgl=.png) @@ -385,6 +385,15 @@ hexagon: hexagon.o turtle.o hexagon.o: hexagon.c turtle.h $(CC) $(CFLAGS) -o $@ hexagon.c +hexspiral.hpgl: hexspiral + ./hexspiral >hexspiral.hpgl + +hexspiral: hexspiral.o turtle.o + $(LD) -o $@ hexspiral.o turtle.o -lm + +hexspiral.o: hexspiral.c turtle.h + $(CC) $(CFLAGS) -o $@ hexspiral.c + plottext: plottext.o turtle.o $(LD) -o $@ plottext.o turtle.o -lm diff --git a/hexspiral.c b/hexspiral.c new file mode 100644 index 0000000..ee7138c --- /dev/null +++ b/hexspiral.c @@ -0,0 +1,25 @@ +/* hexspiral --- plot a hexagonal spiral 2019-05-04 */ +/* Copyright (c) 2019 John Honniball, Froods Software Development */ + +#include +#include "turtle.h" + +int main(int argc, const char *argv[]) +{ + int i; + + turtle(DEV_HPGL, SIZ_A4, ORI_LAND, FLG_BORD); + + colour(BLACK); + + pen(DOWN); + + for (i = 1; i < 360; i++) { + forward((double)i / 4.0); + turn(59.0); + } + + show(); + + return (0); +}