Fórum de Matemática
DÚVIDAS? Nós respondemos!

Um Fórum em Português dedicado à Matemática
Data/Hora: 25 mai 2020, 13:06

Os Horários são TMG [ DST ]




Fazer Nova Pergunta Responder a este Tópico  [ 2 mensagens ] 
Autor Mensagem
MensagemEnviado: 11 fev 2020, 17:56 
Offline

Registado: 14 fev 2018, 18:34
Mensagens: 11
Localização: Sorocaba
Agradeceu: 0 vez(es)
Foi agradecido: 0 vez(es)
Olá amigos. Tenho um problema que é o seguinte:
Tenho um caminho que é composto de uma reta horizontal unida a um arco de 90º e depois unido a uma reta vertical. Como exemplo:
- reta de comprimento 800mm coordenadas P1(0,0) P2(800,0)
- arco com ângulo inicial 270º e ângulo final 360º, raio 50 coordenadas P1(800,0) P2(850,50) Centro(800,50)
- reta de comprimento 800mm coordenadas P1(850,50) P2(850, 850)

Sobre este caminho percorre um segmento de reta de 100mm de comprimento, de centro C pontos P1 e P2, que ao percorrer o caminho, mantém sempre seus pontos P1 e P2 conectados ou tangenciando o caminho.
o........x.........o
P1 C P2

[Veja o GIF em anexo para visualizar o que deve acontecer - em branco é o caminho e em vermelho o segmento de reta que percorre o caminho]

O problema é que tenho que calcular a coordenada do centro C do segmento de reta e sua rotação (ângulo de inclinação) de modo que seus pontos P1 e P2 fiquem sempre tangenciando o caminho (ou calcular as coordenadas P1 e P2, sei lá)...

Podem dar uma luz?

Muito obrigado


Anexos:
Comentário do Ficheiro: Gif exemplificando o problema
Problema.gif
Problema.gif [ 148.56 KiB | Visualizado 182 vezes ]
Topo
 Perfil  
 
MensagemEnviado: 22 mar 2020, 18:59 
Offline

Registado: 10 nov 2012, 00:19
Mensagens: 1432
Localização: Mogi das Cruzes - SP - Brasil
Agradeceu: 47 vezes
Foi agradecido: 450 vezes
Olá, vou tentar ajudar, se é que entendi o problema.

O segmento vermelho tem extremidades P1=(x1,y1) e P2=(x2,y2).

Para 0 <= x <= 800, temos:
x1 = x-100
x2 = x
y1 = y2 = 0

Para 800 < x <= 850, temos:
A posição de P2 é:
x2 = x
y2 = 50 - raiz_quad(50^2 - (x2-800)^2) # ajustado para subir de 0 até 50

A posição de P1, nesse intervalo, é tal que:

P1=(x1, 0) e a distância a P2 é igual a 100:
100 = raiz_quad((x2-x1)^2 + y2^2)
Como sabemos o valor de x2 e y2 obteremos x1.


Quando x2 chegar em 850, estaciona, y2 crescerá a partir de 50.
Quando y2 chegar em 87, x1 terá chegado em 800.
Daí, y1 passa a obedecer a expressão: y1 = 50 - raiz_quad(50^2 - (x1-800)^2) # ajustado para subir de 0 até 50

Com isso dá para calcular o centro = (P1+P2)/2, coordenada a coordenada.

A inclinação do segmento é a tangente (y2-y1)/(x2-x1).
Com isso consegue o ângulo.

Se ficou complicado, posta aí pra gente ir discutindo as partes.

Eu, até fiz um código em Python para o posicionamento de todos os P2 para 0 <= x2 <= 850, veja:

Código:
import numpy as np
import matplotlib.pyplot as plt

def f(X):
  Y = np.zeros(100)
  i = -1
  for x in X:
    i = i + 1
    if x < 800:
      Y[i] = 0
    else:
      Y[i] = 50 - np.sqrt(50**2 - (x-800)**2)
  return Y

 
X = np.linspace(0,849, 100)
Y = f(X)

plt.axis('equal')
plt.plot(X,Y)
plt.show()

_________________
Fraol
Você também pode contribuir, se souber alguma questão responda ou participe da discussão. Divulgue nosso forum.


Topo
 Perfil  
 
Mostrar mensagens anteriores:  Ordenar por  
Fazer Nova Pergunta Responder a este Tópico  [ 2 mensagens ] 

Os Horários são TMG [ DST ]


Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 6 visitantes


Criar perguntas: Proibído
Responder a perguntas: Proibído
Editar Mensagens: Proibído
Apagar Mensagens: Proibído
Enviar anexos: Proibído

Pesquisar por:
Ir para: