As for other geometrical operators the goal is not to draw the result of the fold but to compute the new vertices needed to draw the fold lines. The goal of this operator is to provide a geometrical tool to compute how the last fold has to be done. In our case, there are two different syntaxes whether the common intersection of the three first folds is given or not. If this point is not given, we qualify the case as regular, which in fact is the most frequent case. In this situation, this common point is defined as the intersection of the three bisectors and it will be returned by the operator. In the second syntax (the goofy one), this point is given by user and already exists and it is not returned.
The last fold of the rabbit ear is what we are looking for; it starts from the common intersection of the three first folds and ends intersecting one of the three edge defining the initial triangle or another given edge. This latter point is the second point (or the only one) computed and returned by \rabbit_ear.
Inputs of this operator are:
So, as we can see one has to provide at least three vertex names as input of \rabbit_ear. Those points are not equivalent:
Outputs of this operator can be:
For the first case, the couple of returned vertices are given as extremities of an edge, but there are not an edge. It is just for convenient reasons as for the \line_to_line operator for instance (cf. §). Keep in mind that in this case, the output of this operator is not an edge but a couple of points. Nevertheless, this couple of points can also be seen as the last (mountain) fold described before, even if the physical edge has not been added to the edges data base. The order of vertices is important, the first one is the searched point located on one of the edge of the triangle and second one is the common center of the triangle.
Concerning the second syntax case, there is only one returned vertex
because the common center has be given as a parameter.
This operator should only appear in a step block.
|
|
[bc, o1] = \rabbit_ear(b, c, a); % the simplest rabbit ear definition bc = \rabbit_ear(c, ab, d, o, [b, c]); % o is the square center
[VERTEX, CENTER_O] = \rabbit_ear(MOVING, DEST, VERTEX_3, EDGE); [VERTEX, CENTER_O] = \rabbit_ear(MOVING, DEST, VERTEX_3); VERTEX = \rabbit_ear(MOVING, DEST, VERTEX_3, CENTER_I, EDGE); VERTEX = \rabbit_ear(MOVING, DEST, VERTEX_3, CENTER_I);
MOVING Description : The corner of the triangle that moves during the fold. Type : Symbol, vertex identifier. Allowed values : Any vertex identifier previously defined. DEST Description : One of both other points (than MOVING) of the triangle to indicate the direction of the rabbit ear. Type : Symbol, vertex identifier. Allowed values : Any vertex identifier previously defined. VERTEX_3 Description : Third triangle corner vertex. Type : Symbol, vertex identifier. Allowed values : Any vertex identifier previously defined. CENTER_I Description : The vertex which is the intersection of the first three folds of the rabbit ear. Type : Symbol, vertex identifier. Allowed values : Any vertex identifier previously defined. EDGE (optional) Description : The edge on which VERTEX should be found. Type : Edge, couple of vertex identifier. Allowed values : Any couple of vertex identifiers previously defined. Default value : [MOVING, DEST].
VERTEX Description : The searched vertex located on EDGE. Type : Symbol, vertex identifier. Allowed values : Any vertex identifier not already defined. CENTER_O Description : The intersection of three bisectors of the rabbit ear triangle. Type : Symbol, vertex identifier. Allowed values : Any vertex identifier not already defined.