Let's say that in a hyperbolic plane we use a coordinate system, in which we have a u axis and a v axis that are both mutually perpendicular to each other. The coordinate lines that define u coordinates are all geodesics that are parallel to the v axis, and are closest to the v axis where they cross the u axis. The coordinate "lines" that define v coordinates are not geodesics but are instead curves of constant distance from the u axis.

Also the u coordinates of a point that is on the u axis is the same as the points distance from the origin. Also the v coordinate of any point on a coordinate line that defines u coordinates is the same as the points distance from where the coordinate line crosses the u axis. Also the u coordinates of all points along any given coordinate line defining a u coordinate are the same.

If there is a circle in this hyperbolic plane how would I generate random points in this circle, following the above coordinate system, that are uniformly distributed inside the circle?

  • $\begingroup$ The question is unanswerable as stated, you have not given enough information about the metric in your desired coordinate system. Just saying the properties of coordinate lines are not enough. You need to give an actual formula for a Riemannian metric, for example something of the form $du^2 + dv^2$ (which is not a model of the hyperbolic plane, and is instead the Euclidean plane) or $e^{2v} du^2 + dv^2$ (which is a model of the hyperbolic plane, but does not have the properties you state). $\endgroup$
    – Lee Mosher
    Sep 29, 2019 at 23:41
  • 1
    $\begingroup$ Hyperbolic circles (too) can be defined independently of any coordinate system. Why is it important to specify a coordinate system? $\endgroup$
    – zoli
    Sep 30, 2019 at 15:48
  • 1
    $\begingroup$ Whichever coordinate system you use, your distribution is is given by an area form $f(u,v) \, du \, dv$ restricted to the subset $B_{u,v}$ which is the inside of your circle, itself expressed as a formula in $u,v$ coordinates. The problem is, if you were to give me different coordinates $u',v'$, then I would have to give you a different formula for $f'(u',v')$ and a different formula for $B'_{u',v'}$. So, not knowing which coordinates you want, I cannot tell you the formulas for $f(u,v)$ and $B(u,v)$. $\endgroup$
    – Lee Mosher
    Oct 1, 2019 at 21:17
  • $\begingroup$ The same problem arises in Euclidean geometry! The difference is, that we have an almost universal mathematical agreement to use $(x,y)$ coordinates with area form $dx \, dy$ and with a unit circle whose inside is given by the inequality $x^2 + y^2 < 1$. However, you could be perverse and instead give me scaled coordinates $x'=10x$ and $y'=10y$, in which case the area form is $\frac{dx' \, dy'}{100}$ and the unit circle has inside given by $B(x,y) = \left\{(x,y) \mid x^2 + y^2 < \frac{1}{100}\right\}$. $\endgroup$
    – Lee Mosher
    Oct 1, 2019 at 21:22
  • 1
    $\begingroup$ Specifying the $u,v$ coordinates with additional precision, as you did 2 comments previous to this one, is exactly the kind of specification that my earlier comments were requesting. I would not dismiss that specification as "a few details". $\endgroup$
    – Lee Mosher
    Oct 4, 2019 at 16:54

2 Answers 2


Consider the analogous situation in spherical geometry: We have a circle (a spherical cap) with radius $r$ and centre $\vec c\in\mathbb R^3,\;\vec c\cdot\vec c=1$. The cap is the set of all $\vec x\in\mathbb R^3$ such that

$$\vec x\cdot\vec x=1,\quad\cos r\leq\vec x\cdot\vec c\leq1.$$

Following the idea from Wikipedia (Marsaglia), generate some random points in a box containing the unit ball, discard the points outside of the ball, and project the remaining points onto the sphere. Finally, discard also the points not satisfying $\vec x\cdot\vec c\geq\cos r$.

Now in hyperbolic geometry, we have a circle (a hyperboloid cap) with radius $r$ and centre $\vec c\in\mathbb R^{2,1},\;\vec c\cdot\vec c=-1$. The cap is the set of all $\vec x\in\mathbb R^{2,1}$ such that

$$\vec x\cdot\vec x=-1,\quad-\cosh r\leq\vec x\cdot\vec c\leq-1.$$

As no box contains the entire hyperboloid, find a sufficiently large box containing the convex hull of the cap and the origin $\vec0$ (which is a cone). Generate some random points in this box, discard the points except $-1\leq\vec x\cdot\vec x<0$, and project the remaining points onto the hyperboloid $\big(\vec x/\sqrt{-\vec x\cdot\vec x}\big)$. Finally, discard also the points not satisfying the inequalities above. This should result in a uniformly distributed set of points on the cap.

To convert these points to the hypercycle coordinate system, see my answer here, and solve for $(u,v)$ in terms of $\vec x=(x,y,z)$.


In hyperbolic Geometry the area of a circle is given by the equation


with $a$ being the area and $r$ being the radius of the circle, and $R$ being a constant for any hyperbolic plane.

In order to generate random points inside the circle that follow a uniform distribution, I can first generate random areas for smaller circles within this circle that follow a uniform distribution. Next I can convert the randomly selected areas into randomly selected distances from the center of the circle by manipulating the above formula to get it in the form


Next I can generate random numbers between $0$ and $2\pi$ that follow the uniform distribution.

Now in Lorentzian Geometry there are two sheeted hyperboloids, in which every point on each sheet is of equal spacetime distance from the center of the two sheeted hyperboloid. Each sheet of this type of two sheeted hyperboloid has constant negative curvature, and each point on this sheet is indistinguishable from every other point on the sheet, and all directions along this sheet are also equivalent. This sheet is equivalent to the hyperbolic plane. This means that one way to get the u, v coordinates for each of the randomly selected points I can treat the hyperbolic plane as a sheet of a two sheeted hyperboloid embedded in a 3d Lorentzian Spacetime, and convert from the coordinates that I get for the Lorentzian Spacetime to the u, v coordinates seeing as Lorentzian Geometry is flat.

Now in 3d Lorentzian Geometry I could use the distance formula $$Distance=\sqrt{{\Delta}x^2+{\Delta}y^2-{\Delta}z^2}$$

I could also say that $R$ in the previous equations is the spacetime distance between all the points in the hyperbolic plane and the center of the two sheeted hyperboloid that it is a part of.

The parametric equation of the hyperbolic plane embedded in 3d Lorentzian Spacetime could, that would also follows from the coordinate system that I wrote about in my question could be given as




Now given a distance from the point with u, v coordinates $(0,0)$ it is possible to find the z value of that point using, in 3d Lorentzian Spacetime using the formula


Next the value of $x^2+y^2$ can be found using the formula $$R^2+z^2=x^2+y^2$$

If the random numbers between $0$, and $2\pi$ I described earlier are given by the variable $\theta$ then I can convert them to x, and y using the formulas $$x=\sqrt{R^2+z^2}cos{\theta}$$ $$y=\sqrt{R^2+z^2}sin{\theta}$$

So now I would have the x, y, z coordinates of the points in a Lorentzian Geometry, and just need to convert them to the u, v coordinates I described earlier. The v coordinates of the points could be found using the equation $$v=Rarcsinh\left(\frac{y}{R}\right)$$ and the u coordinates could be found using the equation $$u=Rarcsinh\left(\frac{x}{Rcosh\left(\frac{v}{R}\right)}\right)$$


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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