Jump to content

Recommended Posts

Posted

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

lan_amentoobliquo.jpg

Posted

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!

Posted (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 by Warrior
  • Vote 1
Posted (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

lan_amentoobliquo2.jpg

lista de valores, a partir o 3º item quase não mudam os valores....

lancamentoobliquo3.jpg

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 by vikcch
Posted

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!

Posted

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.

  • Vote 1

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.