Login

Esqueci minha senha

Últimos assuntos
» [CQ#22] GUERRA! O Ultimo CQ de 2014
por PedroX Hoje à(s) 4:47 pm

» Pixel Art - Avaliem meus tilesets
por cascavelo Hoje à(s) 4:41 pm

» Cartão Pré pago internacional
por cascavelo Hoje à(s) 4:37 pm

» Como Resolver Este Bug
por Chingling152 Hoje à(s) 3:54 pm

» [CQ#21] Resultados
por douglas444 Hoje à(s) 3:40 pm

» Block Buster
por JoaoVanBlizzard Hoje à(s) 2:35 pm

» Como criar uma rampa?
por TRFN Hoje à(s) 1:46 pm

» Criação de Equipe
por manobrother Hoje à(s) 12:31 pm

» [TUTORIAL] Função facebook_graph_request
por Gonzo Hoje à(s) 10:55 am

» Marketplace da GMBR
por VanMall Ontem à(s) 9:59 pm

» [Resolvido] Problema com draw_sprite_ext
por matheusco Ontem à(s) 9:39 pm

» [Como Faz?] Barra com Contador estilo Doodle Jump
por vitorfernandes13 Ontem à(s) 7:00 pm

» [Projeto]Super Mario 75
por Lizarus Ontem à(s) 5:38 pm

» League of Legends Update 19-10-2014
por Markituh Ontem à(s) 10:04 am

» [CQ#21] Votação Pública - Participe!
por dharrison Sab Out 18, 2014 7:56 pm

» Dúvidas de como personalizar o meu load game
por Markituh Sab Out 18, 2014 3:37 pm

» O perigoso Projeto! v 1.0.1
por Alex FC Sab Out 18, 2014 2:41 pm

» Projeto F1
por Lighter Sab Out 18, 2014 2:11 pm

» HERÓIS do ESPAÇO
por Lucas Farias Sab Out 18, 2014 1:54 pm

» [Duvida] Leitura de arquivo (gm8)
por Tedi Ripper Sab Out 18, 2014 1:44 pm

» Level Editor, user criar background
por ralk2 Sab Out 18, 2014 10:31 am

» Função não para!
por vinians Sex Out 17, 2014 9:30 pm

» [Resolvido]problemas com audio
por GustavoPix Sex Out 17, 2014 5:05 pm

» Pedido de sprite.
por gabriel33245900 Sex Out 17, 2014 3:47 pm

» Resetar valor inserido
por Isaque Onix Sex Out 17, 2014 3:33 pm

» Problemas ao realizar a concatenação
por Felipe Reis Magno 2 Sex Out 17, 2014 1:07 pm

» Halloween 3d
por JoaoVanBlizzard Sex Out 17, 2014 12:45 pm

» Procura-se voluntarios
por Isaque Onix Sex Out 17, 2014 12:32 pm

» Uma Ajudinha Com Spawns
por matheusco Sex Out 17, 2014 11:46 am

» Tutorial de Multiplayer/Networking Nativo - GMS
por vinians Sex Out 17, 2014 11:28 am

» Inimigo quando esta na tela ativa certa ação
por gabriel33245900 Sex Out 17, 2014 7:40 am

» Mplay impact it
por Isaque Onix Sex Out 17, 2014 3:50 am

» D.O.V.E. Alpha Demo [PC/Android]
por DooMan Qui Out 16, 2014 11:58 pm

» Tela de Load
por matheusco Qui Out 16, 2014 9:29 pm

» Primeira Atualização
por Homer J Simpson Qui Out 16, 2014 6:53 pm

» [Resolvido]Full Screen e Windowed por código
por galavernaa Qui Out 16, 2014 5:12 pm

» Desempenho do seu jogo no android
por Gonzo Qui Out 16, 2014 2:10 pm

» Engine simples cheia de codigos para Plataforma!
por gabriel33245900 Qui Out 16, 2014 12:59 pm

» Criando uma transição no GMS
por ekuhnen Qui Out 16, 2014 11:30 am

» CA#5 Sons em MIDI
por theguitarmester Qui Out 16, 2014 9:36 am

» Galeria de arte - GABRIELGEAZI2
por gabrielgeazi2 Qui Out 16, 2014 8:46 am

» [Android] Ajuda com resolução e tamanho da room
por aminaro Qua Out 15, 2014 11:20 pm

» [Duvida] redirecionando
por Gonzo Qua Out 15, 2014 10:22 pm

» [pedido] dicas para graficos
por Isaque Onix Qua Out 15, 2014 8:59 pm

» Sprites, Tiles e Gráficos Isometricos Pintados
por Kabeção Qua Out 15, 2014 8:31 pm

» Como colidir,mas sem grudar na parede?
por WellingtonBecker Qua Out 15, 2014 8:15 pm

» Como fazer 1 checador de som
por willcraft2 Qua Out 15, 2014 8:14 pm

» Tabelas saindo cortadas
por PedroX Qua Out 15, 2014 2:55 pm

» [XCREATOR] XRunner
por vinians Qua Out 15, 2014 2:38 pm

» [Duvida] A procura do zoom padrão
por Isaque Onix Qua Out 15, 2014 2:19 pm

» Checar room?
por Isaque Onix Qua Out 15, 2014 12:25 pm

» Como Encurtar Este Script (Se Possivel)
por theguitarmester Qua Out 15, 2014 11:10 am

» Fade out in em fonte
por Isaque Onix Qua Out 15, 2014 10:09 am

» [CQ#21] Run For Music - Alpha 2.5.1
por theguitarmester Qua Out 15, 2014 9:49 am

» Spyre
por Isaque Onix Ter Out 14, 2014 10:56 pm

» [pedido ajuda] gms
por Isaque Onix Ter Out 14, 2014 10:24 pm

» Precisa-se programador urgente (até 18/09/2014)
por kammer_black Ter Out 14, 2014 10:05 pm

» † Lucid Dreaming † (ALMA 2)
por Vikintor Ter Out 14, 2014 9:09 pm

» Massive multiplayer online - parte 3
por DevMinuzzo Ter Out 14, 2014 8:46 pm

» Principios básicos de mmo.
por WellingtonBecker Ter Out 14, 2014 8:19 pm

» Alguem tem interesse em fazer um jogo desse?
por ohmpsy Ter Out 14, 2014 8:11 pm

» [Android] Maria World COMPLETO
por willyruduit Ter Out 14, 2014 7:21 pm

» virtual key help!
por willyruduit Ter Out 14, 2014 7:17 pm

» Criar um objeto com 2 sprites
por Isaque Onix Ter Out 14, 2014 7:03 pm

» HERÓIS do ESPAÇO
por douglas444 Ter Out 14, 2014 6:59 pm

» NoOte!
por VanMall Ter Out 14, 2014 6:40 pm

» Ricardo III- Ajuda por favor!
por galavernaa Ter Out 14, 2014 4:57 pm

» [Resolvido]Duvida para colocar jogo Windows Store
por Gonzo Ter Out 14, 2014 4:23 pm

» [Ajuda] Historia para jogo de zumbis
por hfantacussi Ter Out 14, 2014 3:01 pm

» Preciso de uma mente fértil + desmontração do jogo
por hfantacussi Ter Out 14, 2014 3:00 pm

» Como colocar o nome do jogo na janela de execução?
por douglas444 Ter Out 14, 2014 12:46 pm

» Como usar Notificações de Push Android
por Gonzo Ter Out 14, 2014 12:17 pm

» [ Video Aula / PDF ]Tutorial MMORPG
por DevMinuzzo Ter Out 14, 2014 12:14 pm

» Problemao de pulo andando
por gabriel33245900 Ter Out 14, 2014 11:49 am

» Ajuda com surfaces
por Isaque Onix Ter Out 14, 2014 3:43 am

» [Duvida]Move wrap
por WellingtonBecker Seg Out 13, 2014 10:36 pm

» Curso GM Online - 3º Lição - Comunicação entre Clients -> Chat
por DevMinuzzo Seg Out 13, 2014 8:35 pm

» Evento de colisão com vilão?
por Lizarus Seg Out 13, 2014 8:28 pm

» Servidor enviar dados ao cliente GM:S Online
por fredcobain Seg Out 13, 2014 1:51 pm

» Desenvolvimento no forum
por mako182 Seg Out 13, 2014 12:01 pm

» [Update: 13/10/14] Pixel Place 2014
por VanMall Seg Out 13, 2014 11:52 am

» Ajuda
por theguitarmester Seg Out 13, 2014 11:40 am

» [CQ#21]Dubber Land
por theguitarmester Seg Out 13, 2014 10:56 am

» Erro de shader D3D (usando shaders)
por thiago.b.dealmeida Seg Out 13, 2014 1:48 am

» Como Criar Uma I.A Para Zumbi
por matheusco Dom Out 12, 2014 11:22 pm

» Bug Bizarro com meu game
por Willy Dom Out 12, 2014 10:30 pm

» duvida escolha de peças
por Lyon Dom Out 12, 2014 8:42 pm

» [CQ#21] Harvest Nectar! Before Winter Arrives V2.1
por douglas444 Dom Out 12, 2014 7:29 pm

» Qual o codigo?
por Sewer Crawler Dom Out 12, 2014 6:34 pm

» [CQ#21] Memories From Yesterday 3D
por Markituh Dom Out 12, 2014 3:51 pm

» Procura-se engines p/ mobile
por Gonzo Dom Out 12, 2014 3:13 pm

» Sobre "get_string"
por Willy Dom Out 12, 2014 1:52 pm

» A espada de Akain
por Tiago Lima Dom Out 12, 2014 11:42 am

» FutQuiz
por theokof98 Dom Out 12, 2014 11:05 am

» Match the Color
por unaldobrito Dom Out 12, 2014 10:53 am

» [CQ#21] Sprinters
por WellingtonBecker Sab Out 11, 2014 3:42 pm

» Super Br Bros - O Projeto
por querempaz Sab Out 11, 2014 12:40 pm

» Match the Color
por unaldobrito Sab Out 11, 2014 11:13 am

» Como centralizar banner do AdMob
por unaldobrito Sab Out 11, 2014 10:53 am


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

Novo Tópico   Responder ao tópico

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: 348
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: 2375
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: 136

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: 5914
Idade: 19
Data de inscrição: 26/07/2008
Versão:
  • Game Maker Studio: Professional

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

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: 348
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


Novo Tópico   Responder ao tópico
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum