Способ вычисления случайной точки в прямоугольнике недопустим.
Прежде всего вы используете прямоугольник, а не конус (конус - это трехмерная геометрическая фигура). Вот так я бы рассчитал случайную точку внутри прямоугольника (я собираюсь использовать равнобедренный треугольник)
ВНИМАНИЕ: Удивительный MSPaint skillz.
Сначала мы получим позицию по оси y
, используя Math.randon()
, которая дает нам случайное значение от 0 до 1 (назовите его rndY
).
Далее нам нужно вычислить позицию на оси x
. Мы рассчитываем это так:
rndX = 0.5 - rndY/2 + rndY * Math.random()
Это гарантирует нам, что позиция на оси x
всегда будет в треугольнике.
Чтобы исправить вашу локальную глобальную проблему, было бы полезно больше источника или флага.