Type¶
| Type: | enum |
|---|---|
| Range: | Concave1, Concave2, Convex |
| Default: | Convex |
| Appearance: | simple |
Defines the type of corner smoothing in an oriented polygonal chain by replacing sharp intersections with circular arcs. The circular arc always forms on the exterior side of the polygon, ensuring the integrity of the polygon’s shape. This method effectively smooths the sharp corner without altering the overall geometry of the polygonal chain.
In the default Convex case the straight corner is replaced by a circular arc where the arc’s center is inside the polygon. A concave rounding is also supported although one needs to distinguish two cases labeled Concave1 and Concave2.
- Concave1
- In the case of
Concave1, the first edge, which points towards the vertex, is extended tangentially. The corner where the two edges previously intersected is replaced with a circular arc that smoothly connects the first extended edge to the second edge. The center of the circular arc is positioned outside of the polygon. - Concave2
- In the case of
Concave2, the second edge, which points away from the vertex, is extended tangentially. Similar to theConcave1case, the sharp intersection at the corner is rounded off with a circular arc. The arc connects the first edge to the tangentially extended second edge, and the circle center remains outside of the polygon.
A typical use case is depicted in the Figure above generated with the code below. All types of CornerRounding Type are used to describe a rounded Trapezoid one would find for example as a line grating geometry. The sketch above depicts the two cases for the concave rounding options. The grey corner is formed by the oriented edges of the polygon chain. Red arrows indicate the tangential direction of the extension. The red number indicate which of the segments, the first or the second, is tangentially extended and thus naming the Type. The blue circle indicate the construction of the arc segment.
Trapezoid {
...
Width = 4
Height = 1
InnerAngles = [60 60]
CornerRounding {
Point = [3 4]
Radius = .2
NPoints = 10
}
CornerRounding {
Point = [1]
NPoints = 10
Radius = .2
Type = Concave2
}
CornerRounding {
Point = [2]
Radius = .2
NPoints = 10
Type = Concave1
}
}
