Root/poly2d/test/offset

1#!/bin/sh
2. ./Common
3
4###############################################################################
5
6tst "outer offset" <<EOF
7struct p2d *p = p2d_new();
8struct p2d *q;
9
10p2d_append(p, v2d_new(0, 0));
11p2d_append(p, v2d_new(2, 0));
12p2d_append(p, v2d_new(2, 1));
13p2d_append(p, v2d_new(0, 1));
14p2d_close(p);
15q = p2d_offset(p, 0.5);
16p2d_write_gnuplot(stdout, p2d_reverse(q->next));
17EOF
18
19expect <<EOF
20-0.5 -0.5
212.5 -0.5
222.5 1.5
23-0.5 1.5
24-0.5 -0.5
25
26EOF
27
28#------------------------------------------------------------------------------
29
30tst "inner offset" <<EOF
31struct p2d *p = p2d_new();
32struct p2d *q;
33
34p2d_append(p, v2d_new(0, 0));
35p2d_append(p, v2d_new(2, 0));
36p2d_append(p, v2d_new(2, 1));
37p2d_append(p, v2d_new(0, 1));
38p2d_close(p);
39q = p2d_offset(p, -0.1);
40p2d_write_gnuplot(stdout, q);
41EOF
42
43expect <<EOF
440.1 0.1
451.9 0.1
461.9 0.9
470.1 0.9
480.1 0.1
49
50EOF
51
52#------------------------------------------------------------------------------
53
54tst "inner offset, polygon cw" <<EOF
55struct p2d *p = p2d_new();
56struct p2d *q;
57
58p2d_append(p, v2d_new(0, 0));
59p2d_append(p, v2d_new(0, 1));
60p2d_append(p, v2d_new(2, 1));
61p2d_append(p, v2d_new(2, 0));
62p2d_close(p);
63q = p2d_offset(p, -0.1);
64p2d_write_gnuplot(stdout, q);
65EOF
66
67expect <<EOF
680.1 0.1
691.9 0.1
701.9 0.9
710.1 0.9
720.1 0.1
73
74EOF
75
76###############################################################################
77

Archive Download this file

Branches:
master



interactive