vikcch Posted February 7, 2014 at 07:13 PM Report #544398 Posted February 7, 2014 at 07:13 PM Olá a todos, Não ando na escola já lá vão uns anitos bons, mas tenho visto uns videos sobre este assunto e quase todos dizem que a altura do lançamento tem que ser igual à chegada, quando não é igual dizem a altura do lançamento (por exemplo um penhasco) e o chao cá em baixo é horizontal... sem saber a altura é possivel resolver isto... e que eu quero saber é o que está a verde (x,y) não há a secção de fisica postei aqui.. obrigada
thoga31 Posted February 7, 2014 at 09:24 PM Report #544415 Posted February 7, 2014 at 09:24 PM Tens de criar duas funções: 1) A que define a trajectória da bola; 2) A que define o chão inclinado. Para a equação (2), tens de ter em conta que a pessoa está a 4 metros do seu início. Se considerares que a pessoa está no nível y=0 (que é o mais fácil), então f(4)=0 - tem isto em conta na formulação da equação. No final, tens de igualar as equações (1) à (2). Vais obter dois pontos: um em x<4, e outro em x>4 - o resultado que te interessa é o ponto (x,y) em que x>4. Espero que isto te ajude. 😉 Knowledge is free!
Warrior Posted February 8, 2014 at 05:35 AM Report #544455 Posted February 8, 2014 at 05:35 AM (edited) Podia resolver o problema mas não me parece que seja esse o objectivo. Posso-te "empurrar" na direcção correcta dando mais alguns detalhes do que o thoga. Define y(t), a função que te diz em que altura está o projéctil após t segundos. Define x(t), a função que te diz a distância horizontal que o projecto percorreu ao fim de t segundos. Define r(x), a função que te diz qual a altura (y) da rampa x metros após o ponto de lançamento. Podes ignorar aquela parte horizontal se fizeres como diz o thoga, tens que ignorar uma das duas soluções que vais ter (dica: porque é uma equação do 2º grau). Calcula t(x) (quanto tempo passou para o projéctil estar na posição x?) Calcula y(x) (que distância percorreu na horizontal para estar à altura y?) Com y(x) e r(x) a solução deve ser mais evidente. (só sugiro definires y(t) e x(t) porque são as equações que normalmente são ensinadas na escola, podes chegar directamente a y(x) e não precisas da primeira parte) Edited February 8, 2014 at 05:36 AM by Warrior 1 Report
vikcch Posted February 8, 2014 at 11:36 PM Author Report #544501 Posted February 8, 2014 at 11:36 PM (edited) Obrigado por postarem como disse não ando na escola há muito tempo (não me lembro da maior parte das coisas que não se usa no dia a dia) e nem a matemática que aprendi foi "muito evoluída"... como tal não consigo implementar as vossas sugestões... tentei fazer da forma como mostra a imagem no rectângulo vermelho , parecia-me uma opção valida... mas parece que não é... que quiserem deixar a solução do problema por mim tá tudo ok!! fiz um code em vb.net tentando implementar a minha resolução, e o que acontece é que parece que a bola nunca mais caí no chão (até da falta de memória).... no principio parecia estar a correr bem... edit: os valores na imagem 34.64m é 30.64m e Vy=36.69m/s e Vy=26.69m/s lista de valores, a partir o 3º item quase não mudam os valores.... já agora deixo tambem aqui o code... se o analisarem e virem alguma coisa mal digam.... Module Module1 '*** Vertical ' D_fy = V_iy * t + 1/2 * g * t ^ 2 + D_iy ' V_fy = V_iy * g * t ' V_fy^2 = V_iy^2 + 2*g* D_fy ' *** Horizontal ' D_fx = V_ix * t Private Const GRAVIDADE As Integer = 10 Private Graus As Double = 30 Private Velocidade As Double = 20 Private distanciaInicioInclinacao As Double = 4 Private Function GetDistancia_X(ByVal Vel_iX As Double, ByVal tempo As Double) As Double Return Vel_iX * tempo End Function Private Function GetVelocidade_Y_SabendoTempo(ByVal Vel_iY As Double, ByVal tempo As Double) As Double Return Vel_iY * GRAVIDADE * tempo End Function Private Function GetTempo_Sabendo_Velocidade_Y_e_Velocidade_inicial_Y(ByVal velocidade_y As Double, Optional ByVal Vel_iY As Double = 0) As Double If Vel_iY = 0 Then Return velocidade_y / GRAVIDADE Else Return velocidade_y / (Vel_iY * GRAVIDADE) End If End Function Private Function GetVelocidade_Y_SabendoDistancia(ByVal Vel_iY As Double, ByVal distancia_Y As Double) As Double Return Math.Sqrt(Vel_iY ^ 2 + 2 * GRAVIDADE * distancia_Y) End Function Private Function GetRadianos(ByVal Graus As Double) As Double Return Graus * Math.PI / 180 End Function Sub Main() ' Alinhado no Y Dim velocidade_Y As Double = Velocidade * Math.Sin(GetRadianos(Graus)) Dim tempoAteMeio As Double = GetTempo_Sabendo_Velocidade_Y_e_Velocidade_inicial_Y(velocidade_Y) Dim tempoTotal As Double = tempoAteMeio * 2 ' MsgBox(tempoTotal) Dim velocidade_X As Double = Velocidade * Math.Cos(GetRadianos(Graus)) Dim distancia_X As Double = GetDistancia_X(velocidade_X, tempoTotal) ' MsgBox(distancia_X) '*********** Dim i As Integer = 0 Dim lstVelocidades_Y As New List(Of Double) Dim lstDistancias_X As New List(Of Double) lstVelocidades_Y.Add(velocidade_Y) lstDistancias_X.Add(distancia_X - distanciaInicioInclinacao) While lstDistancias_X(lstDistancias_X.Count - 1) > 0.01 ' 1 centimetro 'While lstDistancias_X.Count < 10000 lstVelocidades_Y.Add(GetVelocidade_Y_SabendoDistancia(lstVelocidades_Y(i), lstDistancias_X(i))) Dim tempoDescida As Double = GetTempo_Sabendo_Velocidade_Y_e_Velocidade_inicial_Y(lstVelocidades_Y(i + 1), lstVelocidades_Y(i)) 'MsgBox(tempoDescida) lstDistancias_X.Add(GetDistancia_X(velocidade_X, tempoDescida)) i += 1 End While Dim distanciaTotal_X As Double = 0 For Each item As Double In lstDistancias_X distanciaTotal_X += item Next distanciaTotal_X += distanciaInicioInclinacao MsgBox(distanciaTotal_X) End Sub End Module Edited February 8, 2014 at 11:58 PM by vikcch
thoga31 Posted February 9, 2014 at 12:54 AM Report #544506 Posted February 9, 2014 at 12:54 AM Eia, um programa? Tenta resolver matematicamente. Se estás com dúvidas específicas, diz. 😉 Resolvi segundo o método do @Warrior e segundo um método "forjado" por mim (já não me lembro bem disto, pelo que segui a minha lógica xD), e ambos deram um X e um Y bastante aproximado (X com diferença de 0,06m, o que é normal, se tivermos em conta que arredondei as contas). Knowledge is free!
Warrior Posted February 9, 2014 at 04:27 AM Report #544513 Posted February 9, 2014 at 04:27 AM Esquece os programas para já. Se resolveres as contas num papel a fórmula final é extremamente pequena, é uma linha de código. Se a notação te estiver a confundir, y(t) não é mais do que descrever a altura em função do tempo, ou seja, y = velocidade_inicial_y * t - 0.5*g*t^2 <- y depende só do tempo porque o resto são constantes. Tenta descrever todas as funções que depois no final os termos anulam-se todos. 1 Report
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now