пример случайной точки в треугольнике [закрыто]
Предположим, у вас есть произвольный треугольник с вершинами A
, B
и C
. этот документ (раздел 4.2) говорит, что вы можете генерировать случайные точки, P
, равномерно изнутри треугольника ABC
на следующей выпуклой комбинации вершин:
P = (1 - sqrt(r1)) * A + (sqrt(r1) * (1 - r2)) * B + (sqrt(r1) * r2) * C
здесь r1
и r2
равномерно нарисованы от [0, 1]
и sqrt
является функцией квадратного корня.
как вы оправдываете, что выборочные точки, которые равномерно распределенной в треугольнике ABC
?
редактировать
как указано в комментарии вопрос mathoverflow, графические драгоценные камни обсуждают этот алгоритм.
1 ответов
У вас есть карта P(r1,r2) от единичного квадрата до вашего треугольника. Выбор R1 и r2 равномерно дает случайную точку в единичном квадрате. Изображение в треугольнике распределяется в соответствии с определителем Якоби карты P, который оказывается константой. Поэтому распределение изображений также однородно.
на самом деле, чтобы проверить это, вам нужно только проверить его на одну тройку неколлинеарных точек A,B, C. Аффинные линейные карты имеют постоянный Якобиан, поэтому вы можете применить один из них, чтобы переместить произвольную тройку в это стандартное положение, не влияя на распределение.
наконец, слово о "почему": рассмотрим треугольник как заполненный отрезками линии, параллельными стороне BC. В Формуле для P переменная r1 выбирает, на каком сегменте будет лежать точка, а r2 определяет, где вдоль сегмента она будет находиться. Для однородности все точки На данном отрезке должны обрабатываться одинаково (следовательно, линейно в r2). Но для R1, так как некоторые сегменты короче других, нам нужно отдавать предпочтение длинным сегментам, чтобы достичь равномерного распределения. Sqrt (r1) в Формуле объясняет это.