Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I want to make drawings like these in Mathematica:

sc enter image description here

I don't know if Mathematica is a gppd solution for drawing such images. If it is, please tell me how to do it; if not, please suggest another solution.

share|improve this question
1  
Yes it is possible. Does that answer your question? If not and you want help actually drawing that trying showing what you have tried so far and where you are having trouble. –  s0rce Oct 20 '13 at 0:33
    
@s0rce - I'm making a document with equations and want to draw the two coordinate systems, but I don't know where to start. –  Kiyoshi Oct 20 '13 at 0:42
    
I suggest that you edit the title to something like "how to draw a coordinate system in mathematica", so search engines can index it. –  Zet Oct 20 '13 at 10:53
    
@Zet - Yes, you're right. –  Kiyoshi Oct 20 '13 at 11:00

2 Answers 2

up vote 7 down vote accepted

This may be late but I post for illustration:

orig = {0, 0, 0};
axes = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}};
pt = {0.5, 0.5, 0.5};
arc1 = Table[
   RotationMatrix[j, {0, 0, 1}].{0.5, 0, 0}, {j, 0, Pi/4, 0.01}];
ang = VectorAngle[{0, 0, 1}, {1, 1, 1}];
axis = Cross[{0, 0, 1}, {1, 1, 1}];
arc2 = Table[RotationMatrix[j, axis].{0, 0, 0.5}, {j, 0, ang, 0.01}];
labels = {
  Text[Style["\[Theta]", 12], RotationMatrix[ang/2, axis].{0, 0, 0.6}],
  Text[Style["\[Phi]", 12], 
   RotationMatrix[Pi/8, {0, 0, 1}].{0.6, 0, 0}],
  Text[Style[TraditionalForm["r"], 12], (orig + pt)/2 + {0, 0, -0.05}],
  Text[Style["P", Italic, 12], 1.1 pt],
  Text[Column[{"(x,y,z)", "(r,\[Theta],\[Phi])"}], 
   1.2 pt - {0, 0, 0.1}],
  MapThread[
   Text[#1, #2] &, {Style[#, 12] & /@ {"x", "y", "z"}, 1.1 axes}]
  }

Assembling into graphic object:

Graphics3D[{Arrow[{orig, #}] & /@ axes, {Red, Arrow[{orig, pt}]}, 
  Line[{orig, {0.5, 0.5, 0}}], Line[{{0.5, 0.5, 0}, {0.5, 0.5, 0.5}}],
   Line[arc1], 
  Line[arc2], {Opacity[0.2], 
   Polygon[{orig, {1, 0, 0}, {1, 0, 1}, {0, 0, 1}}]}, {Opacity[0.2], 
   Polygon[{orig, {0, 1, 0}, {0, 1, 1}, {0, 0, 1}}]}, labels}, 
 Boxed -> False]

Does not have all elements (left brace, shading of planes, z on vertical drop) but illustrative. enter image description here

share|improve this answer
    
Thank you, this is awesome! –  Kiyoshi Oct 20 '13 at 9:44

Bit of manual, but can be a staring point, Arc3D function from How to draw an ellipse arc in 3D?:

Graphics3D[{Arrow[{{0, 0, 0}, #} & /@ {{0, 0, 1}, {0, 1, 0}, {1, 0, 0}}], 
 {Dashed, Line[{{.6, 0, 0}, {.6, .6, 0}}]}, 
 Arc3D[{{.3, 0, 0}, {.3, .3, 0}, {0, 0, 0}}, 30],
 Line[{{.6, .6, 0}, {.6, .6, .6}}],
 {PointSize[Medium], Point[{.6, .6, .6}]},
 Line[{{0, 0, 0}, {.6, .6, 0}}],
 Text[Style["O", Italic, Bold, 13], {0, 0, 0}, {2, -1}],
 Text[Style["x", Italic, Bold, 12], {1, 0, 0}, {-3, 0}],
 Text[Style["y", Italic, Bold, 12], {0, 1, 0}, {-2, 0}],
 Text[Style["z", Italic, Bold, 12], {0, 0, 1}, {-3, 1}]},
 Boxed -> False, PlotRangePadding -> .1]
share|improve this answer
    
+1, but you're missing a } at the end. –  Pickett Oct 20 '13 at 6:26
    
@halmir - Thank you! –  Kiyoshi Oct 20 '13 at 8:53
    
@Anon thanks, I fixed it. –  halmir Oct 20 '13 at 12:24

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.