Storing values or calculating values
I'm leaning toward Angle2...




  I also feel the calculations are probably small enough to not worry about


I infer that doing the calcs in the constructor is trivial as well - no problematic user-perceived lag, hesitation, slowness.



Communicating through design

How would I interpret - make an initial guess about - design, intent, and use from what I see here?


... so when calling all of them, they get recalculated multiple times.


By doing something so obviously avoidable, there must be a reason. Somewhere.

Lazy loading, generally, suggests 


the operation is time, CPU, whatever consuming to some degree
doing it all at once certainly is an issue
instantiation and/or re-calculation are not intrinsically inter-dependent.
angle is being mutated because there is no logic avoiding re-calc on every call. 
an object is in a valid state with all, some, or none of the calculations done.


Client doesn't need guard code all over the place
Client does not have to know any particular call order. 


If the client must know call order &amp; all the involved properties to do it, why is Angle1 even a class? 



Doing it all in the constructor suggests


This object is immutable
I'm guaranteeing valid state.
angle is not mutated
client code will be just that much cleaner, easier






  however, still prefer the first code. It is cleaner. Easier, for me, to read. 


You should write code that is "cleaner, and easier" to use.

Conclusion: Angle2 is better.