Dado un rectángulo particular (x1, y1) - (x2, y2), ¿cómo puedo generar un punto aleatorio en su perímetro?Generar un punto aleatorio en el perímetro de un rectángulo con distribución uniforme
He llegado a algunos enfoques, pero parece que debería haber una manera bastante canónica de hacerlo.
Primero, pensé que generaría un punto aleatorio dentro del rectángulo y lo sujetaría al lado más cercano, pero la distribución no parecía uniforme (los puntos casi nunca caían en los lados más cortos). Segundo, escogí un lado al azar y luego elegí un punto al azar en ese lado. El código era un poco torpe y tampoco era uniforme, pero exactamente de la manera opuesta (los lados cortos tenían la misma posibilidad de obtener puntos como lados largos). Finalmente, he estado pensando en "desplegar" el rectángulo en una sola línea y elegir un punto al azar en la línea. Creo que eso generaría una distribución uniforme, pero pensé que podría preguntar aquí antes de embarcarme en ese camino.
pensaría que, conceptualmente, independientemente de cómo se llevan a la práctica que, el enfoque de "despliegue" sería la mejor. – Lazarus
su última idea suena bien. eso es lo que haría. – yurib
Creo que esto pertenece a http://math.stackexchange.com/; pero su tercer enfoque se siente sólido. – ANeves