Script contínuo

Velocidade

Interseção

$\textsf{\LARGE A}$

$\textsf{\LARGE P}$

Parece que P é um ponto da circunferência, mas na verdade é um ponto livre. 
Arraste-o. O script do controle deslizante, que é atualizado a cada passo, é:      DefinirValor(P, P + u)
onde   u = A - P + 4 VetorUnitário(P - A)

Podemos adicionar um coeficiente para controlar a velocidade:    DefinirValor(P, P + k u)

Se adicionarmos outro vetor, P se moverá em direção à interseção mais próxima,
mesmo que não haja uma interseção real!

$\textsf{\LARGE B}$

Pentágono equilátero

Fazendo o mesmo com 5 pontos e 5 vetores, voilà!
Agora podemos manter a igualdade de distância em mais de quatro pontos.

op1 = true
op2 = false
op3 = false
A = (0.1636363636363595, 1.150909090909092)
P = (3.7582041750100603, 2.905640480448837)
anima = 0.95 (slider from 0 to 1, step 0.01)
k = 1 (slider from 0.1 to 1.2, step 0.1)
B: (4.58, -1.54)
r2: 2
r1 = 4
k' = 0
d = Circle(B, r2)
c = Circle(A, r1)
op4 = false
P1 = (2.4147121959401403, 0.3539033975985495)
P2 = (-1.8706462931361907, 2.9295180089712245)
P3 = (3.0297634599226653, 1.9386105599797019)
P4 = (-1.6905259989919923, 0.29109751546327356)
P5 = (0.29226714568087164, 4.881068847262383)
v12: Vector[P1, P2] - (r1 * UnitVector[P2 - P1])
v23: Vector[P2, P3] - (r1 * UnitVector[P3 - P2])
v34: Vector[P3, P4] - (r1 * UnitVector[P4 - P3])
v45: Vector[P4, P5] - (r1 * UnitVector[P5 - P4])
v51: Vector[P5, P1] - (r1 * UnitVector[P1 - P5])
s12 = Segment(P1, P2)
s23 = Segment(P2, P3)
s34 = Segment(P3, P4)
s45 = Segment(P4, P5)
s51 = Segment(P5, P1)
u: A - P + (r1 * UnitVector[P - A])
v: B - P + (r2 * UnitVector[P - B])
texto5: "Comprimentos:" + s12 + "" + s23 + "" + s34 + "" + s45 + "" + s51 + ""