Ir ao conteúdo
  • Cadastre-se

Outro Matemática: como calcular 1 ponto numa linha?


Posts recomendados

muito obrigado. mas me falta 1 informação: "Definiremos as coordenadas dos pontos pertencentes à reta por meio das incógnitas x e y (se a reta pertencer a um espaço de duas dimensões), que se relacionam entre si pela equação. Caso a equação pertença a um espaço de três dimensões, usaremos as incógnitas x, y e z."

qual é a forma de obter a equação em 3D?

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

@Cambalinho  para trabalhar em 3d, precisa usar o sistema vetorial.

 

Tem o artigo abaixo para uma orientação; só que o buraco é um pouco mais embaixo, isto não é conteúdo de ensino médio. Sugiro buscar algum livro de geometria analítica, pois a utilização de vetores exige uma teoria um pouco mais extensa que precisa ter como base, senão não entenderá os conceitos.

 

http://www.professorluisbarbosa.com.br/uploads/2/6/6/5/26650629/aula_7_equacao_da_reta_e_do_plano.pdf

 

 

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

desculpa, mas eu só tenho o 12º ano... e talvez tenha razão....
além disso estou com dificuldade em acompanhar o manual...
a 2D percebo bem... mas a 3D ainda me deixa confuso: o que é o 't'?

adicionado 31 minutos depois

muito obrigado pelos manuais.. e com a sua ajuda consegui fazer a pesquisa certa e encontrei 1 video que me ajuda e muito:

 

muito obrigado por tudo

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

  • 2 semanas depois...

finalmente consegui criar 1 função em VB6 para calcular o ponto da recta:
 

Private Function GetLinePosition(Origin As Position3D, Destiny As Position3D, ActualPosition As Double, Optional WhatCoordenate As Coordenates = Z) As Position3D
    
    'Getting the AB vector(B-A or Destiny-Origin):
    Dim AB As Position3D
    AB.X = Destiny.X - Origin.X
    AB.Y = Destiny.Y - Origin.Y
    AB.Z = Destiny.Z - Origin.Z
    
    Dim NewPosition As Position3D
    Dim T As Double
    'depending on player movement(for get 1 coordenate and the T), we get the point coordenate:
    If (WhatCoordenate = X) Then
        'X = Ax + T
        'T = Ax-X
        T = Origin.X - ActualPosition
        NewPosition.X = ActualPosition
        NewPosition.Y = Origin.Y + AB.Y * T
        NewPosition.Z = Origin.Z + AB.Z * T
    ElseIf (WhatCoordenate = Y) Then
        'Y = Ay + T
        'T = Ay-Y
        T = Origin.Y - ActualPosition
        NewPosition.Y = ActualPosition
        NewPosition.X = Origin.X + AB.X * T
        NewPosition.Z = Origin.Z + AB.Z * T
    ElseIf (WhatCoordenate = Z) Then
        'Z = Az + T
        'T = Az-Z
        T = Origin.Z - ActualPosition
        NewPosition.Z = ActualPosition
        NewPosition.X = Origin.X + AB.X * T
        NewPosition.Y = Origin.Y + AB.Y * T
    End If
    GetLinePosition = NewPosition
End Function

o X, Y ou Z são obtidos dependendo do movimento do jogador(esquerda-direita ou atrás e frente).
eu não tenho como testar esta função se está correcta... só obtenho os resultados quando a figura é desenhada.
eu obtenho resultados inesperados... podes me tentar ver a função para ver se me enganei?

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

esta função tem alguns erros de calculos, mas já a editei:

Private Function GetLinePosition(Origin As Position3D, Destiny As Position3D, ActualPosition As Double, Optional WhatCoordenate As Coordenates = Z) As Position3D
    
    'Getting the AB vector(B-A or Destiny-Origin):
    Dim AB As Position3D
    AB.X = Destiny.X - Origin.X
    AB.Y = Destiny.Y - Origin.Y
    AB.Z = Destiny.Z - Origin.Z
    
    Dim NewPosition As Position3D
    Dim T As Double
    'depending on player movement(for get 1 coordenate and the T), we get the point coordenate:
    If (WhatCoordenate = X) Then
        'P.x = O.x + t*AB.x
        't = (P.x - O.x) / AB.x
        T = (ActualPosition - Origin.X) / AB.X
        NewPosition.X = ActualPosition
        NewPosition.Y = Origin.Y + AB.Y * T
        NewPosition.Z = Origin.Z + AB.Z * T
    ElseIf (WhatCoordenate = Y) Then
        'P.y = O.y + t*AB.y
        't = (P.y - O.y) / AB.y
        T = (ActualPosition - Origin.Y) / AB.Y
        NewPosition.Y = ActualPosition
        NewPosition.X = Origin.X + AB.X * T
        NewPosition.Z = Origin.Z + AB.Z * T
    ElseIf (WhatCoordenate = Z) Then
        'P.z = O.z + t*AB.z
        't = (P.z - O.z) / AB.z
        T = (ActualPosition - Origin.Z) / AB.Z
        NewPosition.Z = ActualPosition
        NewPosition.X = Origin.X + AB.X * T
        NewPosition.Y = Origin.Y + AB.Y * T
    End If
    GetLinePosition = NewPosition
End Function

muito obrigado

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!