Хорошо, я не знаю VBA6, но, поскольку вы сказали:
Я не думаю, что имеет значение, что я делаю в
Я дам общее решение, которое предполагает наличие у вас координат центра окружностей и конечных точек линий.
Эта строка может рассматриваться как вектор:
(line.x2-line.x1, line.y2-line.y1)
Вам не нужно записывать это в своей программе или что-то, просто говоря, что это вектор.
Вам нужно получить значение вектора и присвоить его переменной:
unitSize = sqrt((line.x2-line.x1)^2 + (line.y2-line.y1)^2)
Теперь разбейте его на компоненты вектора единицы и получите отдельные компоненты:
unitX = (line.x2-line.x1)/unitSize
unitY = (line.y2-line.y1)/unitSize
Теперь, когда вы обновите круг:
do {
circle.x = circle.x + unitX * incrementSize //incrementSize scales how big the movement is assign it to whatever you seem fit.
circle.y = circle.y + unitY * incrementSize
until (circle.x >= line.x2) //Or <= line.x2 depends which way you are going.
Надеюсь, это поможет.