Hi
I have two points (A,B) and I want to create a set of random points between the two, such that most points are close to A and the number of points decreases linearly towards B. Does anyone know a simple way to solve this?
Thanks
Gradient Weighted random number
Random number generators generating values between zero and one with an uniform distribution are common. You can take the squared output of such a generator, and then use to to scale the vector (B-A) and add it to A.
In pseudocode:
In pseudocode:
uniformRand = rand();
outputPoint = A + uniformRand*uniformRand * (B-A);
I have two points (A,B) and I want to create a set of random points between the two, such that most points are close to A and the number of points decreases linearly towards B. Does anyone know a simple way to solve this?
It sounds like you need to generate random numbers on a geometric or exponential distribution. If you're using C++ and your development environment supports the current ISO standard, you can just use [font="Courier New"]std::geometric_distribution[/font] or [font="Courier New"]std::exponential_distribution[/font] from [font="Courier New"]<random>[/font]. If you're not in that situation, you can try to write them yourself, it's not that difficult.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement