/ / Geometria - convexa flanqueada por dois círculos girando em torno do centro geométrico - algoritmo, geometria

Geometria - convexa flanqueada por dois círculos giram em torno do centro geométrico - algoritmo, geometria

Eu quero fazer com que um convexo (consistindo de alguma linha ou arco) gire em torno do seu centro geométrico (Cx, Cy). Enquanto isso, o convexo flanqueado por dois círculos (dado pelo raio: R e centro esquerdo :(Lx, Cy), centro direito :(Rx, Cy)). Significa o centro do círculo com o mesmo eixo X que o geométrico (Cy).

A imagem do modelo:

figura 1

O algoritmo tem como objetivo calcular o Lx e Rx quando girar teta(0 a 360 graus) e o convexo com dois círculos têm apenas um ponto de contato separadamente. Como posso conseguir isso?

Suponha que podemos obter os pontos de discretização convexos pela dada distância delta ou delta teta em torno do centro geométrico.

Respostas:

0 para resposta № 1

Para fornecer contato entre convexo girado e círculo, vale a pena definir peças convexas analiticamente.

Por exemplo, se o segmento reto tiver equação paramétrica

X = X0 + t * (X1-X0)
Y = Y0 + t * (Y1-Y0)

então resolva o sistema de equações

(X - Lx)^2 + (Y - Cy)^2 = R^2             //distance
(X - Lx) * (X1 - X0) + (Y - Cy) * (Y1 - Y0) = 0    //tangent perpendicularity to radius

para desconhecidos te Lx e verifique se t está no intervalo 0..1. Se verdadeiro - círculo toca este segmento, Lx se válido

Se o segmento curvo é curva analítica, então normal para a curva no ponto de contato deve ser colinear com o raio.

Para o segmento de arco circular com raio aR e eixo central, a condição de tangência é:

 (ax - Lx)^2 + (ay - Cy)^2 = (aR + R)^2

novamente - é preciso verificar se o ponto de tangente está dentro dos limites do arco