This seem to works fine, some improvements suggested?
extends Node2D
func _ready() -> void:
var start : Vector2 = Vector2(300.0, -100.0)
var stop : Vector2 = Vector2(450.0, 300.0)
prints(divide_junctions_to_equal_parts(start,stop))
func divide_junctions_to_equal_parts(start: Vector2, stop: Vector2) -> Array:
var divider: float = 10.0
var direction = start.direction_to(stop)
var distance = start.distance_to(stop)
var steps: int = int(distance / divider)
var points: Array
for step in steps:
var divided_position = start + direction * (step * divider)
points.append(divided_position)
var leftover_point = start + direction * distance
points.append(leftover_point)
return points
[(300.0, -100.0), (303.5112, -90.63671), (307.0225, -81.27341), (310.5337, -71.91013), (314.0449, -62.54683), (317.5562, -53.18354), (321.0674, -43.82025), (324.5786, -34.45695), (328.0899, -25.09367), (331.6011, -15.73037), (335.1123, -6.367081), (338.6236, 2.996208), (342.1348, 12.3595), (345.6461, 21.72279), (349.1573, 31.08609), (352.6685, 40.44937), (356.1797, 49.81267), (359.691, 59.17596), (363.2022, 68.53926), (366.7134, 77.90254), (370.2247, 87.26584), (373.7359, 96.62914), (377.2472, 105.9924), (380.7584, 115.3557), (384.2696, 124.719), (387.7809, 134.0823), (391.2921, 143.4456), (394.8033, 152.8089), (398.3146, 162.1722), (401.8258, 171.5355), (405.337, 180.8987), (408.8483, 190.2621), (412.3595, 199.6253), (415.8707, 208.9886), (419.382, 218.3519), (422.8932, 227.7152), (426.4044, 237.0785), (429.9156, 246.4418), (433.4269, 255.8051), (436.9381, 265.1684), (440.4494, 274.5317), (443.9606, 283.895), (450.0, 300.0)]