1. currentmiterlimit
Returns current miter limit value.
1.2. Stack Effects
| Level | Object |
|---|---|
(empty) |
– |
| Level | Object |
|---|---|
0 |
|
1.3. Description
currentmiterlimit returns the current miter limit parameter from the graphics state. This is the value most recently set by setmiterlimit.
The miter limit controls when sharp miter joins are converted to bevel joins. It is the ratio of miter length to line width. When this ratio exceeds the miter limit, a bevel join is used instead.
-
Default: typically 10.0
-
Minimum: 1.0
-
Higher values: allow sharper angles before beveling
-
Lower values: bevel more angles
1.5. Examples
10 setmiterlimit
currentmiterlimit
% Stack: 10
currentmiterlimit % Save
/savedLimit exch def
1 setmiterlimit % Change (bevel all)
drawSharpAngles
savedLimit setmiterlimit % Restore
currentmiterlimit
2 mul
setmiterlimit
1.6. Common Use Cases
1.6.1. Miter Limit Preservation
/DrawWithNoMiters {
currentmiterlimit % Save
1 setmiterlimit % Minimum (bevel all)
drawShape
setmiterlimit % Restore
} def
1.7. Common Pitfalls
| Only Affects Miter Joins - Miter limit only applies when line join is 0 (miter). |
1 setlinejoin % Round join
1 setmiterlimit % Has no effect
currentmiterlimit % Returns 1, but not used
| Minimum Value is 1 - Values less than 1 are clamped to 1. |
0.5 setmiterlimit
currentmiterlimit % Returns 1.0
| Low Value Bevels All - Use 1.0 to bevel all sharp corners. |
1.9. Implementation Notes
-
Very fast query operation
-
No modification to graphics state
-
Returns number ≥ 1.0
-
Default is typically 10.0
-
Only meaningful for miter joins
-
Widely supported (Level 1)
1.10. Miter Limit Behavior
The miter limit determines the cutoff angle:
Limit Cutoff Angle (approx)
----- --------------------
1.0 90° (bevels all)
1.414 90°
2.0 60°
4.0 29°
10.0 11° (default)
∞ 0° (never bevel)
Formula:
miterLimit = 1 / sin(angle/2)
1.11. Visual Effect
% Very permissive (sharp miters)
100 setmiterlimit
drawSharpCorners
% Very restrictive (bevels most)
1 setmiterlimit
drawSharpCorners
1.12. See Also
-
setmiterlimit- Set miter limit -
currentlinejoin- Get line join style -
setlinejoin- Set line join style -
currentlinewidth- Get line width