# How to plot 3D curly brace

How do I plot a 3D curly brace that is scalable, but the curly parts remain intact, and can be altered where the labeling tip points to?

update:

I have tried insetting the string { into my graphics, and it looks more professional than the BSplineCurve I previously used, but still lacks adjustability.

Inset[
First@ImportString@
ExportString[
Style["{", RGBColor[0.25, 0.25, 0.25], FontSize -> 12,
FontFamily -> "Cambria Math"], "PDF"],
{0.12, 0, 1/2 + 0.045}, Center, 45]

The result looks something like this:

• It seems like a straightforward but very tedious task. What have you tried? Where did you get stuck? Commented Oct 16, 2017 at 10:49
• Look at previous attempts, for example mathematica.stackexchange.com/questions/4374/…
– Acus
Commented Oct 16, 2017 at 12:14
• @Szabolcs, I've been using BSplineCurve to make the braces and adjust it by GeometricTransformation. It looks somewhat unprofessional though.
– 2ub
Commented Oct 16, 2017 at 12:21
• @user18792, OK I'll take a look.
– 2ub
Commented Oct 16, 2017 at 12:23
• What do you mean by 3D? Something like in this question? mathematica.stackexchange.com/questions/128412/… Commented Oct 16, 2017 at 15:54

Here's a way to get most of what you want, stolen from Szabolcs here:

reg = BoundaryDiscretizeGraphics[
Text[Style["{", FontFamily -> "Cambria"]], _Text];
polyBase = FirstCase[Normal@Show[reg], _Polygon, None, Infinity];
poly = Polygon[
Prepend[#, ConstantArray[0, Length[#[[1]]]]] &@
Map[Rescale, Transpose@polyBase[[1]]] // Transpose
];

That gives you a polygon, which you can just mess with using GeometricTransformation.

Here's the base Polygon:

poly // Graphics3D

Note that you can change it with transformations:

GeometricTransformation[poly,
ScalingTransform[{1, 1, 3}]] // Graphics3D

And since it has been Rescale-d that now spans the z range [0, 3]. See also RotationTransform and TranslationTransform.

• pretty much what I want haha.
– 2ub
Commented Oct 17, 2017 at 7:36