Ir para conteúdo
Fórum Script Brasil
  • 0

Direção E Sentido De Retas


diraol

Pergunta

Fala galerinha, meu primeiro post aqui...hehehe......

é o seguinte, não vou falar do problema todo porque é muito grande, mas queria uma idéia de vocês para o seguinte.....

o q eu tenho:

eq. de uma reta ®: ax+by+c=0 (tenho os valores de a, b e c);

eq. de uma circunferêcia ©: x²+y²=r² (tenho r²);

dois pontos de r: (x0,y0) e (x1,y1);

os pontos de intersecção de R com C: (xa,ya) e (xb,yb);

o que eu preciso:

A idéia é a seguinte...... a reta é a trajetória de um carro....... os pontos (x0,y0) e (x1,y1) são duas localizações do carro em dois momentos diferentes....... a circunferência é uma área restrita........ e eu preciso saber se o carro está se aproximando ou se afastando da circunferência (contando de (x0,y0) até (x1,y1))........ mas não sei como fazer isso.... =/

se alguém puder ajudar eu agradeço.... tongue.gif

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Opa!

Olha só, pelo que entendi, a reta "r" (o carro) parte do ponto (x0, y0) e pára no ponto (x1, y1); o prolongamento dessa trajetória cruza a cricunferência x² + y² = r² nos pontos (xa, ya) e (xb, yb).

OBS.: se interpretei errado, avise.

Se esse for o caso, uma possível solução para isso seria calcular a distância de (x0, y0) a (xa, ya) (chamaremos de d0), e de (x1, y1) a (xa, ya) (chamaremos de d1).

d0 = sqrt( ( xa - x0 )² + ( ya - y0 )² );
d1 = sqrt( ( xa - x1 )² + ( ya - y1 )² );

if ( d0 > d1 ) {
    // está se aproximando
} else if ( d0 < d1 ) {
    // está se afastando
}

Espero ter ajudado...

Até mais!

Link para o comentário
Compartilhar em outros sites

  • 0

então, isso passou pela minha cabeça, mas existem casos em que isso não funciona necessariamente, como por exemplo x1 estando dentro da circunferência e x0 fora......... smile.gif ai eu precisaria avaliar isso entende?.... tongue.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Entendo. Então considerando que o ponto (xb, yb) será sempre o segundo ponto de interseção da reta "r" com a circunferência dada (isto é, ela sempre interceptará (xa, ya) primeiro), vamos supor que o carro pare dentro da circunferência (ou seja, (x1, y1) dentro):

d_ab = sqrt( ( xb - xa )² + ( yb - ya )² );
d_1b = sqrt( ( xb - x1 )² + ( yb - y1 )² );

// "d_ab" é a distância de (xa, ya) a (xb, yb)
// "d_1b" é a distância de (x1, y1) a (xb, yb)

d0 = sqrt( ( xa - x0 )² + ( ya - y0 )² );
d1 = sqrt( ( xa - x1 )² + ( ya - y1 )² );

if ( d_1b < d_ab ) {
    // está dentro
} else if ( d0 > d1 ) {
   // está se aproximando
} else if ( d0 < d1 ) {
   // está se afastando
}

Ou seja, se o ponto (x1, y1) estiver dentro da circunferência, a distância dele ao ponto (xb, yb) vai ser menor que o diâmetro da circunferência (que é a distância de (xa, ya) a (xb, yb)).

Até mais!

Link para o comentário
Compartilhar em outros sites

  • 0

Então cara.... eu consegui fazer.... o caso de x1 estar dentro da circunferência eu vou tratar na função main()........... só não posto o cód. aqui porque ficou na casa da minha namorada......... mas assim q tiver posto.... dpois posto o programa completo também.....

vlw ae...... biggrin.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...