Нахождение координат точек на окружности круга - PullRequest
0 голосов
/ 18 апреля 2020

Чего я хочу добиться - это сохранить координаты всех точек, которые составляют окружность круга. Я знаю, что это практически невозможно, поскольку на окружности есть бесконечные точки, но, скажем, я хочу сохранить координаты, найденные через каждые 1 см на окружности круга. и окружность круга составляет 50 см, так что на самом деле я буду хранить 25 значений в моем массиве.

Это то, что я пробовал до сих пор:

for(var degree=0;degree<360;degree++){
    var radians = degree * Math.PI/180;
    var x = center + radius * Math.cos(radians);
    var y = center + radius * Math.sin(radians);
    //x & y are the coordinates of points on the circumference
} 

Но мой код выше не работает по желанию. Помощь будет высоко оценена!

1 Ответ

3 голосов
/ 19 апреля 2020

для этого вам нужно увеличить угол на соответствующий размер шага (вместо того, чтобы увеличивать его). Итак, давайте определим наш круг следующим образом:
x0,y0 - центр круга
r - радиус
d - приблизительное расстояние между точками

, теперь мы можем использовать окружность круга так:

n = ceil (2.0*M_PI*r / d); // integer number of points (rounded up)
da = 2.0*M_PI/n;           // floating angular step between points
for (a=0.0,i=0;i;<n;i++,a+=da)
  {
  x = x0 + r*cos(a);
  y = y0 + r*sin(a);
  // here x,y is your point
  }

Извините, я не кодирую в javascript, поэтому код вместо C++, поэтому просто измените синтаксис, чтобы он соответствовал вашему ...

Однако, если вы хотите, чтобы все растеризовались вместо пикселей есть другие методы, которые могут это сделать (Bresenham, midpoint и т. д. c ...), некоторые даже не нуждаются в других операциях, кроме +,- см.

...