Login

Esqueci minha senha

Últimos assuntos
» Execução em segundo plano
por Vizage Hoje à(s) 4:37 pm

» [XCREATOR] Basket Rush
por Ninja_PH Hoje à(s) 4:29 pm

» GMS 1.4 ta rodando meio lento
por vinians Hoje à(s) 4:04 pm

» Manutenção no fórum
por Gonzo Hoje à(s) 3:53 pm

» [Dúvida] Habilitar funções do sistema
por Gonzo Hoje à(s) 3:51 pm

» Mais de uma fase em uma unica room.
por Edvaldo 007 Hoje à(s) 2:33 pm

» [Thyago] Mega soccer
por Thyago Hoje à(s) 2:23 pm

» IA com grid
por saim Hoje à(s) 1:29 pm

» [Demo] Submundo 3D
por JoaoVanBlizzard Hoje à(s) 1:10 pm

» Conectar ao servidor com rede(IP) externa/o?
por GabrielXavier Hoje à(s) 1:05 pm

» concept's rápidas
por Alex FC Hoje à(s) 11:11 am

» Gemtheo
por theokof98 Hoje à(s) 10:20 am

» Webinar grátis: Custo dos Bugs, Controle de Versão
por ole123 Hoje à(s) 9:05 am

» Pokémon - The Japan's legend
por Dlr Hoje à(s) 12:05 am

» Jogo de RPG
por bootzin Ontem à(s) 8:39 pm

» abrir imagens vetoriais
por WellingtonBecker Ontem à(s) 8:14 pm

» ajuda com o GMS
por matheusco Ontem à(s) 6:22 pm

» "Remasterização" de Gráficos
por Mateus O de Andrade Ontem à(s) 3:23 pm

» Galeria de desenhos (007)
por Edvaldo 007 Ontem à(s) 1:12 pm

» Demo Hatfields and MacCoys
por JoaoVanBlizzard Ontem à(s) 12:40 pm

» Pokemon Cardex
por Dlr Ontem à(s) 12:37 pm

» Dragon Ball AF 2
por Dlr Ontem à(s) 12:27 pm

» Dragon Ball AF+
por Dlr Ontem à(s) 12:21 pm

» Pokemon Mega Evolution 83%Completo
por Dlr Ontem à(s) 11:55 am

» Procuro Spriter - Top-Down RPG
por matheusco Ontem à(s) 10:47 am

» Ip externo conectar a servidor no android?
por GabrielXavier Ontem à(s) 12:29 am

» Erro ao abrir executável do GMS
por gabrielsch Qua Set 17, 2014 9:41 pm

» [Android] Maria World COMPLETO
por willyruduit Qua Set 17, 2014 9:01 pm

» [Pedido] exportar para GM:Studio
por WellingtonBecker Qua Set 17, 2014 7:29 pm

» Bug ao usar variável de outro objeto.
por WellingtonBecker Qua Set 17, 2014 7:10 pm

» [Pedido] "Executável" HTML5 para Demonstração
por dharrison Qua Set 17, 2014 4:08 pm

» Crio Trilha Sonora para Games!
por Sandro Casagrande Jr. Qua Set 17, 2014 1:47 pm

» Game das Eleições: ELEIÇÃO SUPERSTAR
por baraodopirapora Qua Set 17, 2014 11:37 am

» Efeito Especial: Coord. Esféricas - Cartesiano 3D
por Kabeção Qua Set 17, 2014 12:17 am

» Sobre arquivos online
por Isaque Onix Ter Set 16, 2014 11:19 pm

» tutorial para adicionar adbuddiz no gamemaker
por WellingtonBecker Ter Set 16, 2014 9:33 pm

» obj nao segue
por WellingtonBecker Ter Set 16, 2014 9:22 pm

» Ajuda com Approach Circles
por Cabeçalho Onlin'E Ter Set 16, 2014 9:13 pm

» [Arte] Sprite para meu jogo
por Susano Ter Set 16, 2014 8:38 pm

» [Pedido]eu queria sprites de digimon.
por WellingtonBecker Ter Set 16, 2014 7:28 pm

» [Engine] Movimento Limpo 2.0 - Willy
por Willy Ter Set 16, 2014 7:00 pm

» Como fazer um personagem atirar?
por Lizarus Ter Set 16, 2014 6:47 pm

» Notificações do Andoid e iOS. E app em 2º plano
por Gonzo Ter Set 16, 2014 3:08 pm

» [D]Flappy Bat [Android]
por JoaoVanBlizzard Ter Set 16, 2014 2:04 pm

» CA#5 Sons em MIDI
por Gonzo Ter Set 16, 2014 1:37 pm

» aparencia!!
por AxeInLine Ter Set 16, 2014 10:30 am

» [ajuda]mysql erro
por Isaque Onix Ter Set 16, 2014 3:51 am

» [CA#5] [Literatura] Um Convite, Duas Vidas Mudadas
por viniciusav Seg Set 15, 2014 10:56 pm

» Prize.
por AxeInLine Seg Set 15, 2014 7:51 pm

» Como trocar de arma com o mouse
por gui.alfaia Seg Set 15, 2014 7:31 pm

» [RESOLVIDO] Tirar a opção de fechar ao press. Esc?
por Ninja_PH Seg Set 15, 2014 3:32 pm

» D-Run! v1.1.2 [NOVO!]
por AxeInLine Seg Set 15, 2014 9:24 am

» Como fazer uma checagem no distance_to_object
por matheusco Seg Set 15, 2014 2:04 am

» Problema ao dropar armas
por AxeInLine Dom Set 14, 2014 9:18 pm

» Problema de pulo caindo
por matheusco Dom Set 14, 2014 8:59 pm

» CA#5 (Heroi Manhoso)
por douglas444 Dom Set 14, 2014 4:58 pm

» Tempo seguir tela
por Markituh Dom Set 14, 2014 1:37 pm

» Dúvida sobre "extensões" no Game Maker
por Lauro Dom Set 14, 2014 12:34 pm

» [CA#5] ( Personagem ) Espírito de Marajó
por douglas444 Dom Set 14, 2014 9:30 am

» Tutorial ou engine de spawnpoint do jogador
por matheusco Dom Set 14, 2014 7:47 am

» TowerMaker ! [Projeto]
por PedroMatoso Dom Set 14, 2014 2:19 am

» [Galeria] The Origin.
por PedroMatoso Dom Set 14, 2014 1:49 am

» [Android] duvida sobre a compatibilidade do SDK
por itarodrigo Dom Set 14, 2014 1:38 am

» [CA #5] A História da GMBR
por Sr. Sinistro Dom Set 14, 2014 12:09 am

» [Update: 04/09/14] Pixel Place 2014
por AxeInLine Sab Set 13, 2014 11:19 pm

» problema com água
por WellingtonBecker Sab Set 13, 2014 10:53 pm

» Conexão MySql com GM:S Standart no ip local
por Lauro Sab Set 13, 2014 5:06 pm

» Tutorial alguem pode me passar?
por Lenda XD Sab Set 13, 2014 4:36 pm

» adBuddiz no gamemaker
por evalds10 Sab Set 13, 2014 4:26 pm

» [SORTEIO] Livros de Game Design
por itarodrigo Sab Set 13, 2014 3:49 pm

» TCG Yugiyoyo (nome temporário)
por Lauro Sab Set 13, 2014 3:45 pm

» [PEDIDO=TUTORIAL] Acertar a Resposta.
por FabiioW Sab Set 13, 2014 3:38 pm

» [Android] - MultiTouch
por cascavelo Sab Set 13, 2014 3:31 pm

» Problemas com dash
por Mestre Rá Sab Set 13, 2014 3:31 pm

» Problema com distance_to_object
por Riccardoric Sab Set 13, 2014 3:31 pm

» HeroiBrasil
por Riccardoric Sab Set 13, 2014 3:04 pm

» Problema de pulo
por gabriel33245900 Sab Set 13, 2014 2:16 pm

» [Studio] Criar extensões
por evalds10 Sab Set 13, 2014 2:01 pm

» Como colocar colisão com bloco Sólido apenas com 1
por gabriel33245900 Sab Set 13, 2014 10:53 am

» recrutando programadores para DGE
por Riccardoric Sab Set 13, 2014 9:27 am

» tela "pixelada"
por LeoX Sab Set 13, 2014 8:52 am

» [XCREATOR] [UTILITARIO]
por PedroX Sex Set 12, 2014 9:21 pm

» Falso 3D
por João Pedro Sex Set 12, 2014 8:57 pm

» Recrutando Spriters para DGE
por Gutorrock Sex Set 12, 2014 8:24 pm

» Pixel War [Android]
por fabert Sex Set 12, 2014 8:14 pm

» Teste de Pintura #1
por Koratsu Sex Set 12, 2014 6:19 pm

» Game Maker studio Versus Game Maker 8.0
por JoaoVanBlizzard Sex Set 12, 2014 5:34 pm

» qual a diferença entre o gm lite e o studio free?
por DieBoy Sex Set 12, 2014 4:11 pm

» [GMBR Magazine] Vagas para CDC's
por Sr. Sinistro Sex Set 12, 2014 2:18 pm

» como manter sempre em um espaço quadrado
por Isaque Onix Sex Set 12, 2014 12:44 pm

» Direitos autorais
por dharrison Sex Set 12, 2014 12:35 pm

» Interação com outros arquivos
por Felipe Reis Magno 2 Sex Set 12, 2014 12:29 pm

» Como Controlar Um Objeto Com Analogico Direito
por dharrison Sex Set 12, 2014 11:34 am

» Direitos autorais?
por JoaoVanBlizzard Sex Set 12, 2014 10:29 am

» Primeiro Jogo #1 - Movimentação em Grid e Colisões
por dharrison Sex Set 12, 2014 9:56 am

» [TCP]Como conectar em wan.
por Rodrigo Santiago Sex Set 12, 2014 9:55 am

» [#CA5] (Post de Mais um Herói)
por Lucas Farias Qui Set 11, 2014 11:21 pm

» [CA#5] (Poema) Almas Indecisas
por douglas444 Qui Set 11, 2014 10:07 pm

» Professor - [#CA5]
por Katerp Qui Set 11, 2014 9:43 pm


[Matemática] Distância entre dois pontos no espaço 2D e 3D

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Matemática] Distância entre dois pontos no espaço 2D e 3D

Mensagem por LeandroDaher em Ter Nov 29, 2011 5:50 pm

Aprendenda a pegar a distância entre dois pontos no espaço 2D e 3D neste tutorial original em inglês, traduzido para o protuguês com o Google Tradutor.

Distância entre dois pontos

A fórmula de distância, como o teorema de Pitágoras, pode ser usado para determinar a detecção de colisão com bastante facilidade.

Primeiro, você deve saber os pontos em que os objetos estão localizados.

Dizer um objeto é localizado em (x1, y1) e objeto 2 está localizado em (x2, y2). Tanto em um plano de 2 dimensões.



Agora devo esclarecer aqui que sqrt significa raiz quadrada. Não existe uma chave raiz quadrada no meu teclado , e na maioria das linguagens de programação é chamada sqrt ou sqr.

Ok agora a fórmula da distância é:

D = sqrt ((x2 - x1) ^ 2 + (y2 - y1) ^ 2)

Que se expandiu aparência:

D = sqrt ((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1))

Ao usar este, se D é 0 ou menos de uma distância de colisão set que precisamos, então há uma colisão.

Mas como poderíamos fazer isso em um mundo 3D, você pode estar se perguntando.

Bem, não quero saber mais, é quase o mesmo. Você leva seu pontos que estão localizados em:
(X1, y1) e (x2, y2)

Em seguida, basta adicionar os valores de z. Então, eles seriam localizados em:

(X1, y1, z1) e (x2, y2, z2)

E para obter isso em nossa equação, nós adicionamos o valor z2 z1 pegar o valor e da praça-lo.

Então, nossas fórmulas agora está assim:

D = sqrt ((x2 - x1) ^ 2 + (y2 - y1) ^ 2 + (z2 - z1) ^ 2)

Que quando expandido aparência:

D = sqrt ((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1) + (z2 - z1) * (z2 - z1))

E aí temos, podemos calcular a distância entre dois pontos no espaço 2D ou 3D.

Se você tiver alguma dúvida, por favor email mim em swiftless@gmail.com

Fonte [em inglês]: http://www.swiftless.com/tutorials/maths/distance_formula.html


Última edição por leandrohackerx em Qui Dez 01, 2011 6:43 pm, editado 1 vez(es)

LeandroDaher

Número de Mensagens: 347
Idade: 18
Data de inscrição: 13/05/2010
Versão:
  • Game Maker 8.0
  • Game Maker 8.1

Reputação: 1

Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Matemática] Distância entre dois pontos no espaço 2D e 3D

Mensagem por Alex FC em Ter Nov 29, 2011 7:14 pm

Ótimo tutorial Very Happy.

Quando migramos para uma linguagem mais robusta essa é uma das primeiras coisas que aprendemos. Até porque pode servir para detectar "colisões circulares" hehe.

Você explicou muito bem, só falta tornar o tópico mais chamativo, formatando ele melhor.

FLWS!

Alex FC

Ranking: Nota A
Número de Mensagens: 2342
Idade: 21
Data de inscrição: 20/12/2008
Versão:
  • Game Maker 8.0
  • Game Maker 8.1
  • Game Maker Studio: Professional

Notas recebidas: B A
Reputação: 131

Prêmios
   : 1
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: [Matemática] Distância entre dois pontos no espaço 2D e 3D

Mensagem por Carlos L. em Ter Nov 29, 2011 7:22 pm

Já usei esse sistema uma vez para fazer uma seleção estilo windows.
O assunto faz parte da geometria analítica, e o nome do assunto e Distancia entre dois pontos.
http://www.colegioweb.com.br/matematica/distancia-entre-dois-pontos-.html

Carlos L.

Ranking: Nota C
Número de Mensagens: 270
Data de inscrição: 26/09/2010
Notas recebidas: C
Reputação: 8

Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Matemática] Distância entre dois pontos no espaço 2D e 3D

Mensagem por PedroX em Ter Nov 29, 2011 8:42 pm

Boa ideia traduzir o tutorial.
Ficou bem explicado mesmo.

Só uma coisa, sqr eleva ao quadrado, sqrt extrai a raiz.
Adapta ai que fica melhor ainda.

Off: Na minha coleção de scripts matemáticos há essas fórmulas também.

Até mais!

___________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações

Enigma
Quer melhorar seu inglês? Entre para o Clube do Inglês:


PedroX

Ranking: Nota C
Número de Mensagens: 5879
Idade: 19
Data de inscrição: 26/07/2008
Versão:
  • Game Maker Studio: Professional

Notas recebidas: C+B
Reputação: 261

Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [Matemática] Distância entre dois pontos no espaço 2D e 3D

Mensagem por LeandroDaher em Qua Nov 30, 2011 5:19 pm

Vlw Pedrø, eu vou editar o tópico.
eu gostei do script "7- Calculando a direção entre dois pontos.", eu uso o ArcTan2 da biblioteca Math no pascal (atan2 em C/C++ na Math.h), mas é so uma tecnica simplisinha q eu faço, é ruim mas funciona um pouco xD, o problema é q so da pra X e Y aew eu faço assim:

function PointObjectToObject(Objeto1, Objeto2: TLHXGLBaseObject): glFloat;
var
Angulo: glFloat;
begin
//Parametros: arctan2(Y, X);

Angulo:=ArcTan2(Objeto2.Position.X-Objeto1.Position.X, Objeto2.Position.Z-Objeto1.Position.Z) * 180 / PI;
Result:=Angulo;
end;

Como vc pode ver eu coloquei o X no lugar do Y e o Z no lugar do X pq só funcionou assim.
Vou tentar modificar seu script para o 3D e ver se funciona melhor.

LeandroDaher

Número de Mensagens: 347
Idade: 18
Data de inscrição: 13/05/2010
Versão:
  • Game Maker 8.0
  • Game Maker 8.1

Reputação: 1

Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Matemática] Distância entre dois pontos no espaço 2D e 3D

Mensagem por Hatzo enkiri em Qua Nov 30, 2011 6:19 pm

Bons scripts! Sabia que a circunferência é a distancia entre pontos? Bom mas sobre angulos em 3d são problemáticos. Na verdade surgem dois ângulos. Para vc entender melhor pesquise sobre vetores. Até mais!

Hatzo enkiri

Ranking: Nota B
Número de Mensagens: 226
Idade: 20
Data de inscrição: 19/02/2009
Notas recebidas: B
Reputação: 7

Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Matemática] Distância entre dois pontos no espaço 2D e 3D

Mensagem por Da Galáxia em Qui Dez 01, 2011 1:29 pm

Isto em C++ é assim:

D = sqrt (pow(x2 - x1, 2) + pow(y2 - y1, 2) )

sqrt = função para achar a raiz quadrada
pow = função para potencia

Da Galáxia

Número de Mensagens: 348
Data de inscrição: 14/01/2010
Reputação: 1

Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Matemática] Distância entre dois pontos no espaço 2D e 3D

Mensagem por GameMakerTutoriais em Sab Dez 03, 2011 12:58 am

Legal demais cara, ficou bem direto. Tipo, a maior dúvida que eu tive era como inserir o ponto "z", achei um monte de tutorial enrolado, mas esse aí foi certinho, cara já fala direto: é assim e pá, pronto! E eu fazia uma gambiarrada danada...

Aquele site que tu me mostrou do objeto rotacionando, pow, perfeito! É exatamente isso que o cara usou, tu me falou pra abrir o javascript da página e era isso mesmo que tinha lá.

Flws, o/

GameMakerTutoriais

Número de Mensagens: 801
Data de inscrição: 29/01/2011
Versão:
  • Game Maker 8.0
  • Game Maker 8.1

Reputação: 26

Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Matemática] Distância entre dois pontos no espaço 2D e 3D

Mensagem por mrbrum22 em Sab Dez 03, 2011 11:09 am

Essa fórmula é usada na Álgebra Linear para calcular o módulo de um vetor.
Muito bom o tuto,parabéns!

mrbrum22

Ranking: Nota C
Número de Mensagens: 866
Idade: 23
Data de inscrição: 28/04/2011
Notas recebidas: D + D + C + C + D + B
Reputação: 27

Prêmios
   : 1
   : 0
   : 0

http://mrbrumgames.blogspot.com/

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum