Я работаю над проектом внешнего интерфейса с angular 6, d3.js и svg.Одной из особенностей является то, что на экране есть круг (на самом деле эллипс, но для простоты круг).В этом круге есть шар, который движется по кругу.Мяч больше всего попадает в определенную точку круга с переменной скоростью.
Это код, который я использую, чтобы получить случайную точку в круге, но я не знаю, как создать направление для мяча, и если он достигнет этой точки, чтобы создать другую случайную точку,оно становится бесконечным случайным.
private createRandomPointInEllipse() {
var svgRoom = document.getElementById('room').getBoundingClientRect();
var width = svgRoom.width;
var height = svgRoom.height;
if (width < height) { //width is range
this.randomPointX = width * Math.sqrt(Math.random()) * Math.cos(Math.random() * 2 * Math.PI);
this.randomPointY = width * Math.sqrt(Math.random()) * Math.sin(Math.random() * 2 * Math.PI);
} else { // height is range
this.randomPointX = height * Math.sqrt(Math.random()) * Math.cos(Math.random() * 2 * Math.PI);
this.randomPointY = height * Math.sqrt(Math.random()) * Math.sin(Math.random() * 2 * Math.PI);
}
}
позже точки присваиваются другим приложением, так что этот круг на данный момент не является проблемой.