What are polygonal sleeves called and how are they calculated?

When the polygon rotates, it skips all possible rotations between the current and the desired situation. Here are 3 images to illustrate what I mean:

This is the current polygon:
current polygon

Rotating 45 degrees (clockwise) will result in: desired polygon

The current polygon rotated 45 degrees clockwise with all possible situations in between will result in: complete polygon

How are these actually called "sleeves" (intermediate situations) and how are these "full polygons" calculated / approximated based on the current polygon and the desired rotation angle?

+3


source to share


1 answer


In the CAD industry, we will refer to this operation as a 2nd sweep or a 2nd planar sweep; in this case 2d flat rotational sweep. (Not to be confused with the line sweep algorithm .) The resulting area will be a 2d area with a spanning or 2nd mark, and a contour called 2d.

Several articles on this topic can be found here:



Your 2nd pivot case is not as generic as the cases covered in these articles. If you are thinking of sweeping just one curve - a line or an arc, say - then the bounding curves of the 2d wrap area would look like this. Imagine you have drawn a curve in 3d where the curve is simultaneously extruded along the axis of rotation as it rotates around the axis. In this case, the boundaries of your 2D flat pattern will be the boundaries of a 3D oriented surface projected back to 2d plus 3d silhouettes on the flattened surface are projected back to 2d, taking the axis of rotation as the view vector to create the silhouette.

Computational silhouettes of common surfaces are nontrivial, but for rotational sweep + extrusion along the axis of rotation, the silhouettes will be traced by points where the tangent of the sweep curve is parallel to the direction of rotation, i.e. perpendicular to the radius vector extended from the center of rotation. So the algorithm for calculating your 2nd area might look like this:

  • For each edge segment of the region to be rotated,

  • Divide the edge where the tangent is parallel to the direction of rotation.

  • Exclude any degenerate curves - arcs, coaxial axes of rotation.

  • For each split edge segment, form a 2d region consisting of a curve start position, curve end position, and start and end points connected by arcs. Since we split at the points of the silhouette, there should be no self-intersections.

  • Make a 2d boolean from a 2d region at its start position, its end position, and the flat pattern created in the first step.

0


source







All Articles