pipeline
pleat.intersecting_cylinders.pipeline ¶
Build the intersecting-cylinders crease pattern from a tiling.
See :class:pleat.intersecting_cylinders.profiles.Profile for the cross-section
parameter, and :func:make_intersecting_cylinders for the main entry point.
make_intersecting_cylinders ¶
make_intersecting_cylinders(
G: "EuclideanPositionHEG",
profile: Profile,
r: float = 1.0,
) -> "EuclideanPositionHEG"
Construct an intersecting-cylinders crease pattern from a tiling.
Every face of G must have an incenter, and the incircles of adjacent
faces should be tangential to each other (touching at the shared edge) for
the resulting crease pattern to be foldable.
The pattern places a small triangle twist at every face incenter and curved
triangles between adjacent twists: each curved triangle's flat side
connects the incenters of two adjacent faces, and its apex meets at the
original tiling vertex shared by those two edges. With r = 1 the curved
triangles meet at the original vertices to form spikes; with 0 < r < 1
a downscaled copy of every face is preserved and a flat polygon (dual to
the original vertex) replaces the spike, turning the curved triangles into
curved quadrilaterals.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
G
|
'EuclideanPositionHEG'
|
Input tiling. Mutated in place to record midpoints, then a working copy is taken before applying Conway operators. |
required |
profile
|
Profile
|
Cross-section curve. See
:func: |
required |
r
|
float
|
Triangle scaling. |
1.0
|
Returns:
| Type | Description |
|---|---|
'EuclideanPositionHEG'
|
A new |
'EuclideanPositionHEG'
|
attributes (red curved creases, blue/black straight creases) and |
'EuclideanPositionHEG'
|
|
Source code in pleat/intersecting_cylinders/pipeline.py
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | |
top_view ¶
Return the flat top-view projection of an intersecting-cylinders model.
The projection of every curved triangle (r = 1) or curved quadrilateral
(r < 1) onto the base plane is a flat polygon. For r = 1 these are
triangles spanning two adjacent face incenters and the original vertex they
share — i.e. the Conway join operator (which inserts a vertex at every
face incenter and joins it to the incident original vertices). For
r < 1 they are trapezoids reaching from each pair of adjacent face
incenters down to the corresponding edge of the down-scaled inner face
(the Conway chamfer operator with t = r).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
G
|
'EuclideanPositionHEG'
|
Input tiling whose faces have well-defined (pseudo-)incenters. A working copy is taken; the input is not modified. |
required |
r
|
float
|
Triangle scaling matching the value passed to
:func: |
1.0
|
Returns:
| Type | Description |
|---|---|
'EuclideanPositionHEG'
|
A new |