Есть прямоугольная область (x,y от нуля до некоторых значений), внутри которой еще одна прямоугольная область с известными координатами углов. Каким образом исключить ее из рассмотрения для того, чтобы с помощью генератора случайных чисел можно было относительно легко получить координаты произвольной точки?
То есть пусть например в исходной области макс. x. равен xmax, а макс. y ymax. Тогда, если бы не было внутренней области, можно было просто написать x=random(xmax+1), y=random(ymax+1).
Лобовым решением является простое разделение оставшейся от вырезания области на 8 частей, каждая из которых прямоугольная и в ней обычным рандомом находить точку. Для выбора одной из 8-ми областей тоже использовать рандом.
Вопрос
Alex7wrt
Есть прямоугольная область (x,y от нуля до некоторых значений), внутри которой еще одна прямоугольная область с известными координатами углов. Каким образом исключить ее из рассмотрения для того, чтобы с помощью генератора случайных чисел можно было относительно легко получить координаты произвольной точки?
То есть пусть например в исходной области макс. x. равен xmax, а макс. y ymax. Тогда, если бы не было внутренней области, можно было просто написать x=random(xmax+1), y=random(ymax+1).
Лобовым решением является простое разделение оставшейся от вырезания области на 8 частей, каждая из которых прямоугольная и в ней обычным рандомом находить точку. Для выбора одной из 8-ми областей тоже использовать рандом.
Но вдруг есть более изящные и простые решения?
Изменено пользователем Alex7wrtСсылка на комментарий
10 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.