0
$\begingroup$

I have a vector $\vec{A}(x, y, z)$.

Now I want to rotate the vector randomly (x by ϕ, y by θ and z by ψ) in the 3D plane in the Cartesian coordinate itself.

Is there any way to do that?

I want to pick points randomly on a sphere so that they are uniformly distributed.

$\endgroup$
  • $\begingroup$ What is the "sphere point picking" problem, in this context? $\endgroup$ – C. E. Apr 25 '18 at 14:13
  • $\begingroup$ mathworld.wolfram.com/SpherePointPicking.html $\endgroup$ – Bikash Apr 25 '18 at 14:14
  • 1
    $\begingroup$ If you want to pick points randomly on a sphere so that they are uniformly distributed, then please say so. Currently it is said in a difficult to understand way. There is a method for it on the page that you linked to. Please also see the function RandomPoint. $\endgroup$ – C. E. Apr 25 '18 at 14:17
3
$\begingroup$

This answer is based on RandomPoint as pointed out by C.E.

Define the following function that generates the random points given a 3D vector and sample size.

pts[A_List, n_] := 
 RandomPoint[Sphere[{0, 0, 0}, Sqrt[A[[1]]^2 + A[[2]]^2 + A[[3]]^2]], 
  n]

Example:

data = pts[{1, 2, 3}, 1000];
ListPointPlot3D[data]

example output

$\endgroup$

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