This topic is 2547 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

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

Share on other sites
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:
 uniformRand = rand(); outputPoint = A + uniformRand*uniformRand * (B-A); 

Share on other sites

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.

Share on other sites
Thanks for the reply guys Rene Z's response worked perfectly for my situation (I'm not using C++), but I will look into std::geometric_distribution and std::exponential_distribution just out of interest, so thanks for that Bregma.

1. 1
2. 2
3. 3
4. 4
Rutin
12
5. 5

• 12
• 16
• 9
• 14
• 10
• Forum Statistics

• Total Topics
632658
• Total Posts
3007687
• Who's Online (See full list)

There are no registered users currently online

×