Login

Esqueci minha senha

Últimos assuntos
» [CQ#17] De volta as Origens, só que Melhor!
por dharrison Hoje à(s) 3:47 am

» South park plus (primium)
por Thyago Hoje à(s) 2:28 am

» Tempo do alarm [Turbo]
por Dark Holy Devil Hoje à(s) 1:32 am

» Sprites, Tiles e Gráficos Isometricos Pintados
por dharrison Ontem à(s) 10:28 pm

» [Exposição] Pixel Arts dos meus Games - dharrison
por dharrison Ontem à(s) 10:23 pm

» Programa para animações
por cascavelo Ontem à(s) 10:17 pm

» [Tutorial] Variáveis
por Camin Ontem à(s) 10:07 pm

» Peekaboo - agora vai!
por JoaoVanBlizzard Ontem à(s) 9:31 pm

» Paintings of the evil
por JoaoVanBlizzard Ontem à(s) 9:26 pm

» Problemas com meu jogo [despedida do fórum]
por Thyago Ontem à(s) 9:23 pm

» Duvidas
por Rodrigo Santiago Ontem à(s) 8:08 pm

» [XCREATOR] Fruit Hunter
por cascavelo Ontem à(s) 7:05 pm

» trabalhar com varios AUDIOS?
por reivin Ontem à(s) 6:36 pm

» Avaliadores do mês,
por chicoweb Ontem à(s) 5:32 pm

» Sistemas em batalha
por Isaque Onix Ontem à(s) 5:12 pm

» [RESOLVIDO] Bug com place_free
por Mateus O de Andrade Ontem à(s) 5:08 pm

» duvida com script
por Isaque Onix Ontem à(s) 4:44 pm

» Germonique - Meu projeto ambicioso
por polosam Ontem à(s) 11:28 am

» Como fazer barra de vida circular que segue o play
por polosam Ontem à(s) 11:08 am

» Fantastic Rush
por cascavelo Ontem à(s) 11:07 am

» Avaliem meu Mago
por polosam Ontem à(s) 10:42 am

» Melhor Curso Game Maker Studio Pago
por Carlos Eduardo Ontem à(s) 2:30 am

» Dúvida sobre 3d
por lucas_SK8 Ontem à(s) 12:35 am

» [Idéia] Games de Zumbi Survival Horror enjoaram?
por dharrison Ter Abr 15, 2014 11:36 pm

» Meus primeiros desenhos com mesa digitalizadora
por gabrielgeazi2 Ter Abr 15, 2014 10:37 pm

» [video] Desenhando por cima de fotos no Photoshop.
por polosam Ter Abr 15, 2014 10:31 pm

» GMS Demora Abrir
por JoaoVanBlizzard Ter Abr 15, 2014 9:58 pm

» Minha Galeria de Pixel Art
por PedroMatoso Ter Abr 15, 2014 9:45 pm

» Trilha sonora original.
por Markituh Ter Abr 15, 2014 9:20 pm

» Aventuras de Bird 2
por G_STF Ter Abr 15, 2014 8:43 pm

» [Discussão] Por que você escolheu fazer isso?
por PedroMatoso Ter Abr 15, 2014 8:08 pm

» Como criar um jogo multiplayer online em HTML5?
por leandro.sousa.7370 Ter Abr 15, 2014 6:34 pm

» Windows 7 X Windows XP
por Igor KinGamer Ter Abr 15, 2014 5:52 pm

» Recrutando equipe
por Arthurk8 Ter Abr 15, 2014 3:38 pm

» Ludum Dare 29 ! ( 25/04 )
por chicoweb Ter Abr 15, 2014 2:59 pm

» animar a room
por Gabreel Ter Abr 15, 2014 2:02 pm

» duvida colisão
por fredcobain Ter Abr 15, 2014 1:25 pm

» [G.M-8.0] Bugs na engine, ajudapor favor...
por shatterhand2 Ter Abr 15, 2014 1:12 pm

» [Tutorial] Movimento com o Mouse
por Mateus O de Andrade Ter Abr 15, 2014 1:02 pm

» Healthbar redonda NÍVEL INICIANTE!
por Mateus O de Andrade Ter Abr 15, 2014 10:21 am

» Aprendendo a ser um Bom Usuário
por Mateus O de Andrade Ter Abr 15, 2014 10:11 am

» Minha primeira melodia no Flstudio
por FlyAway Seg Abr 14, 2014 11:41 pm

» Duvida sobre a "visão" topdown
por DonutScore Seg Abr 14, 2014 5:14 pm

» Unidade de medida
por chicoweb Seg Abr 14, 2014 4:54 pm

» Dúvida em relação aos inimigos
por Igor KinGamer Seg Abr 14, 2014 10:09 am

» Projeto Arkanoid Type Zero
por Mateus O de Andrade Seg Abr 14, 2014 7:53 am

» Musicas Para Seus Jogos
por edbulgar3d Dom Abr 13, 2014 11:24 pm

» [Resolvido]colisao bugada
por manobrother Dom Abr 13, 2014 10:40 pm

» [Anúncio]O Retorno dos Concursos Quinzenais! CQ#17
por Gabreel Dom Abr 13, 2014 10:04 pm

» Neon Starfighter
por coisadepro Dom Abr 13, 2014 9:21 pm

» Recrutamento para Equipe.
por matheusvh5 Dom Abr 13, 2014 9:07 pm

» Dúvida I.A (esquematizada)
por marcin_w_ Dom Abr 13, 2014 4:43 pm

» Jogo feito no GMS na Play Store?
por Gabreel Dom Abr 13, 2014 2:57 pm

» [Projeto] کے Tungsten
por ariel h.s Dom Abr 13, 2014 2:48 pm

» É possivel incorporar HTML no GM?
por Tedi Ripper Dom Abr 13, 2014 12:32 pm

» GPS - localização do jogador, é possível obter?
por fredcobain Dom Abr 13, 2014 12:31 pm

» [Duvida] Como mover objeto clicando em outro
por Mr. Kaleb Dom Abr 13, 2014 11:43 am

» Configure o Photoshop para fazer pixel art!
por Gabreel Dom Abr 13, 2014 3:31 am

» Colisão pequeno detalhe
por Gabreel Sab Abr 12, 2014 5:27 pm

» IA procurar abrigo
por Kapoty Sab Abr 12, 2014 3:18 pm

» Ajuda com variable exists
por Kapoty Sab Abr 12, 2014 2:58 pm

» quebrando a cabeça
por willcraft2 Sab Abr 12, 2014 2:16 pm

» Lista de medalhistas
por PedroX Sab Abr 12, 2014 12:26 pm

» [Artigo] Jogadores de games para celular
por Eudes - Hyo Sab Abr 12, 2014 12:34 am

» [Resolvido]duvida codigo
por Arthurk8 Sex Abr 11, 2014 11:12 pm

» [CAMPANHA]A volta dos concursos quizenais
por dharrison Sex Abr 11, 2014 9:29 pm

» Dúvida sobre alterar o tipo de arquivo
por Superbomber Sex Abr 11, 2014 8:49 pm

» [Duvida] Performance em game
por willyruduit Sex Abr 11, 2014 7:17 pm

» Dúvida com tela
por Dallysson Sex Abr 11, 2014 5:14 pm

» [Dúvida] Time Trial igual ao do Crash Bandicoot
por ctrgui Sex Abr 11, 2014 3:19 pm

» Pedido de Engine MMORPG
por Rodrigo Santiago Sex Abr 11, 2014 1:44 pm

» [GM8] Help Me To Buy A Wii U +v1.0.1
por ninja33733 Sex Abr 11, 2014 12:57 pm

» Pixel art muito fina
por dharrison Sex Abr 11, 2014 12:50 pm

» Efeitos duvida rapida
por dharrison Sex Abr 11, 2014 12:48 pm

» [CAMPANHA] Salvem o Chatbox!
por Mateus O de Andrade Sex Abr 11, 2014 11:20 am

» GMS irá suportar a biblioteca Liquid Fun
por shatterhand2 Sex Abr 11, 2014 1:08 am

» Curso UDK - Aula 0: Noções sobre 3D, UDK e o Curso
por JoaoVanBlizzard Sex Abr 11, 2014 12:39 am

» Submundo-e sua trajetória
por Gabreel Qui Abr 10, 2014 9:54 pm

» [Break Jump HD] - Recrutamento
por luan.alc Qui Abr 10, 2014 9:41 pm

» Fazer um objeto "grudar" no jogador (duvida)
por douglas.dsb Qui Abr 10, 2014 9:25 pm

» Cheat para fazer carro aparecer
por polosam Qui Abr 10, 2014 6:25 pm

» [Dúvida]Processo de Criação: Super Mario Bros
por dharrison Qui Abr 10, 2014 6:12 pm

» Como fazer gancho para "agarrar"?
por moisesBR Qui Abr 10, 2014 4:15 pm

» Ajuda com marcação de tempo!
por Arthurk8 Qui Abr 10, 2014 3:50 pm

» Projeto Bone sistem to Game Maker
por Isaque Onix Qui Abr 10, 2014 2:37 pm

» [XCREATOR] Arte vetorizada
por vinians Qui Abr 10, 2014 2:10 pm

» [caça-talentos] Seleção de artistas gráficos
por cascavelo Qui Abr 10, 2014 11:25 am

» Desenhando Arcos (Curva Bezier)
por cascavelo Qui Abr 10, 2014 9:19 am

» Minha Pixel Art do Yoshi
por Killerzinho Qua Abr 09, 2014 7:13 pm

» Arquivos INI
por fredcobain Qua Abr 09, 2014 5:49 pm

» Bomberman Engine - by JV Justino
por Dallysson Qua Abr 09, 2014 2:45 pm

» Enovo
por FlyAway Qua Abr 09, 2014 12:59 pm

» Mega pacote de recursos, sprites, músicas e códigos-fonte!
por Arthurk8 Qua Abr 09, 2014 11:56 am

» Tutoriais compilados
por Mateus O de Andrade Qua Abr 09, 2014 11:11 am

» Artes no blender
por Isaque Onix Ter Abr 08, 2014 6:04 pm

» GM:S e Database
por Isaque Onix Ter Abr 08, 2014 4:38 pm

» [Thyago]engine movimentos livres
por Thyago Ter Abr 08, 2014 2:34 pm

» Se agachar em 3D
por Rodrigo Santiago Ter Abr 08, 2014 1:25 pm

» background
por Gabreel Ter Abr 08, 2014 12:25 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 leandrohackerx 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)

leandrohackerx

Alerta:
0 / 1000 / 100

Número de Mensagens: 344
Idade: 18
Data de inscrição: 13/05/2010
Reputação: 1

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

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
Alerta:
0 / 1000 / 100

Número de Mensagens: 2266
Idade: 20
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: 100

Prêmios
   : 1
   : 1
   : 1

Ver perfil do usuário 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
Alerta:
0 / 1000 / 100

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

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.

Se você gosta de C++, aprenda a instalar o Enigma, parecido com o GM, nesse tutorial.

PedroX

Ranking: Nota C
Alerta:
0 / 1000 / 100

Número de Mensagens: 5563
Idade: 18
Data de inscrição: 26/07/2008
Versão:
  • Game Maker 8.0
  • Game Maker 8.1

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

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

Mensagem por leandrohackerx 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.

leandrohackerx

Alerta:
0 / 1000 / 100

Número de Mensagens: 344
Idade: 18
Data de inscrição: 13/05/2010
Reputação: 1

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

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
Alerta:
0 / 1000 / 100

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

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

Alerta:
0 / 1000 / 100

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

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

Alerta:
0 / 1000 / 100

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

Reputação: 25

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

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
Alerta:
0 / 1000 / 100

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

Prêmios
   : 1
   : 0
   : 0

Ver perfil do usuário 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