Предположим, что у вас есть произвольный треугольник с вершинами A
, B
и C
. This paper (section 4.2) говорит, что вы можете создать случайную точку, P
, равномерно внутри треугольника ABC
следующей выпуклой комбинации вершин:образец случайной точки в треугольнике
P = (1 - sqrt(r1)) * A + (sqrt(r1) * (1 - r2)) * B + (sqrt(r1) * r2) * C
где r1
и r2
равномерно взяты из [0, 1]
и sqrt
является квадратным корнем функции ,
Как вы подтверждаете, что выбранные точки равномерно распределены в треугольнике ABC
?
EDIT
Как было отмечено в комментарии к the mathoverflow question, Graphical Gems discusses this algorithm.
Это, вероятно, лучше подходит для http://math.stackexchange.com/ –
http://math.stackexchange.com/questions/18686/uniform-random-point-in-triangle – dsg
Я думаю, что он идеально подходит для ТАК. Голосование для повторного открытия. Численные методы подходят здесь довольно хорошо, и если вы собираетесь сделать что-то вроде Монте-Карло, лучше убедитесь, что вы можете обосновать свои предположения. –