Spawning objects around a circle

Attention Topic was automatically imported from the old Question2Answer platform.
Old Version Published before Godot 3 was released.

Hi guys,
the problem is: given a certain circle (e. g. 100 pixels), I need to spawn objects around its perimeter. Is there a certain method/type to do this dynamically?
I’m thinking of using a `Vector2` and then spawn on its coordinates, but then I don’t know how to get the different coordinates of the perimeter (can i rotate the vector?).
I don’t know if it’s an obvious question, but I’m new to the engine

This is a simple math problem, that can be solved using `sin` and `cos` trigonometric functions + some angles:

``````var count = 10
var center = Vector2(x, y)

# Get how much of an angle objects will be spaced around the circle.
# Angles are in radians so 2.0*PI = 360 degrees
var angle_step = 2.0*PI / count

var angle = 0
# For each node to spawn
for i in range(0, count):

var direction = Vector2(cos(angle), sin(angle))
var pos = center + direction * radius

var node = scene_res.instance()
node.set_pos(pos)

# Rotate one step
angle += angle_step
``````

I did not think about that, thanks!

DodoIta | 2017-02-27 19:20

Alternatively, you can just do it with vector rotation, avoiding the need for sin/cos

``````var count = 10
var center = Vector2(x, y)

var step = 2 * PI / count

for i in range(count):
var spawn_pos = center + radius.rotated(step * i)

var node = scene_res.instance()
node.set_pos(spawn_pos)