I have point A (pointA = (x1, y1)) and I need to choose a random point B (pointB = (x2, y2)) such that the distance between the A and B is equal to K.
Advertisement
Answer
Let’s solve in polar form.
We’ll need these doubles distance, x1, and y1.
First, we want the angle in radians:
double angle = Math.random()*2*Math.PI;
Then we want to get the x and y offsets from our point:
double xOff = Math.cos(angle)*distance; double yOff = Math.sin(angle)*distance;
Then we add these to our first point:
double x2 = x1 + xOff; double y2 = y1 + yOff;
This will get you a point a certain distance away from your first point.