Ir ao conteúdo
  • Cadastre-se

C# Manter a distancia de um objeto


Arkcanjou

Posts recomendados

Estou tendo dificuldades com a logica para um objeto manter distancia de outro objeto em um plano cartesiano

Basicamente os Objetos tem a propriedade Position(X, Y) que representam a posição deles. O objB sempre vai andar em direção ao objA, a minha duvida é como posso calcular a posição que o objA deve se mover para se afastar do objB como mostrado na imagem
 

Diagrama sem nome.drawio.png

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Arkcanjou Você pode aplicar as relações de um triângulo retângulo para mover o objeto de acordo com a distância e ângulo que o outro se aproxima, p.ex,

 

triang.png.a40a3ab8a74a77f1583616e96385e93c.png

 

A distância é a hipotenusa e o cálculo: distância = √[(Ax - Bx)² + (Ay - By)²]. Se fizer uma função para isso pode usar nos catetos também,

hipotenusa = distancia(Ax, Ay, Bx, By);
oposto = distancia(Ax, Ay, Ax, By);
adjacente = distancia(Ax, By, Bx, By);

 

Aí é só testar a distância (você também pode somar o raio já que a distância é medida entre os centros). Supondo que queira mover o objeto quando for 10 unidades no ângulo que o outro se aproxima, você pode incrementar a posição desta forma,

 

if (hipotenusa < 10) {
    if (Ax > Bx) {
        Bx -= adjacente / hipotenusa;
    }else{
        Bx += adjacente / hipotenusa;
    }

    if (Ay > By) {
        By -= oposto / hipotenusa;
    }else{
        By += oposto / hipotenusa;
    }
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!