How simple divisions or multiplications of angles can generate usefull ratio of length

> restart:

> with(geometry): _EnvHorizontalName := 'x': _EnvVerticalName := 'y':

Let's start with a square sheet of paper which vertex are named A,B,C,D.

E is any point on the segment CD and alpha is let angle of AD with AE :

> point(A,0,0); point(B,0,1); point(C,1,1); point(D,1,0);
segment(AB, A,B); segment(BC, B,C); segment(CD, C,D); segment(DA, D, A);

> point(E, 1,.35); segment(AE, A,E);

> draw([A,B,C,D, AB,BC,CD,DA, E, AE], printtext=true, axes=none, title="Starting shape");

Maple Plot

Let's double alpha and name F the obtained point on CD:

> line(ae,[A,E]):line(ad,[A,D]): alpha:=FindAngle(ae,ad);

> f:=VerticalCoord(E)*tan(2*alpha)/tan(alpha);

> point(F, 1, f); segment(AF, A,F);

> draw([A,B,C,D, AB,BC,CD,DA, E, AE, F, AF], printtext=true, axes=none, title="Shape at the end");

Maple Plot

The relationship between the distances DE and DF is:

> y=tan(2*arctan(x));

> plot(tan(2*arctan(x)), x=0..(.5), title="Relationship between the distance by doubling the angle");

Maple Plot

> f=tan(2*arctan( VerticalCoord(E)));

The real question is "is it possible to go from a simple ratio to another using this method?"

This means to find fractions r and R so that:

> R=tan(2*arctan( r));

Let's implement a brute force exploration of what we can do.

At first the interesting functional f_R, then a procedure which inputs are:

- the upper bound for the denominator for r

- the upper bound for the denominator for R

- the functional f_R

> f_R:=(r)->tan(2*arctan( r));

> find_roots:=proc( m, b, f) local n,d,t, r;
r:=[];
for d from 2 to m do; for n from 1 to d-1 do;
t:=convert(evalf(f(n/d)), fraction);
if denom(t)
r:=[op(r), [n/d, t]];
fi;
od; od; ListTools[MakeUnique](r);
end proc:

> R_found2:=find_roots(12, 12, f_R);

Here is the result R_found.

This list can be inverted by dividing the angle in two:

> seq( printf("%2d/%2d -> x2 -> %2d/%2d
", numer(R_found2[n][1]), denom(R_found2[n][1]), numer(R_found2[n][2]), denom(R_found2[n][2])), n=1..nops(R_found2));
seq( printf("%2d/%2d -> /2 -> %2d/%2d
", numer(R_found2[n][2]), denom(R_found2[n][2]), numer(R_found2[n][1]), denom(R_found2[n][1])), n=1..nops(R_found2));

1/ 3 -> x2 -> 3/ 4
1/ 5 -> x2 -> 5/12
3/ 4 -> /2 -> 1/ 3
5/12 -> /2 -> 1/ 5

This means that to obtain a 1/3 ratio on a sheet of paper (read line 3), you need to:

- set the F point at a 3/4 ratio

- split alpha in two

- here you are, the E point is at 1/3

>

>

This post was generated using the MaplePrimes File Manager

View 744_origami-divide-angles-01.mw on MapleNet or Download 744_origami-divide-angles-01.mw
View file details


Please Wait...