Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mathematica: Text in Graphics3D relative to image coordinates

Mathematica documentation states: "Text in three-dimensional graphics is placed at a position that corresponds to the projection of the point {x,y,z} specified. Text is drawn in front of all other objects". How do you position the text relative to the image size?

This is how it can be done in 2D:

custumLabels = Graphics[{
  Text[Style["A", Red, Bold, 18], ImageScaled[{0.025, .95}]], 
  Text[Style["B", Red, Bold, 18], ImageScaled[{0.95, .05}]]}
];
Framed[Show[
  Plot[
    Sin[x] Exp[x], {x, 0, 10},
    Frame -> True,
    PlotRangeClipping -> False,
    FrameLabel -> {"x", "y"}
  ],
  custumLabels
 ],
 FrameMargins -> 0]

Output

Those labels will always appear in that position as long as PlotRangeClipping is set to False. The question is, how do you make those labels appear at that particular position if I switch to Graphics3D. Try it with a simple one.

Framed[Show[
  Graphics3D[{Sphere[{0, 0, 0}, 1]}]
 ],
 FrameMargins -> 0]
like image 634
jmlopez Avatar asked Jun 13 '11 22:06

jmlopez


1 Answers

Epilog and Prolog in 3D use a scaled 2D coordinate system (for all primitives):

Graphics3D[{Sphere[]}, Epilog -> Text["abcdef", Scaled[{0.1, 0.1}]]]

enter image description here

like image 107
Brett Champion Avatar answered Nov 15 '22 06:11

Brett Champion