для этого вам нужно увеличить угол на соответствующий размер шага (вместо того, чтобы увеличивать его). Итак, давайте определим наш круг следующим образом:
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 ...), некоторые даже не нуждаются в других операциях, кроме +,-
см.