Login

Esqueci minha senha

Últimos assuntos
» Gui interativo e randomizar
por Lunion4saken Hoje à(s) 7:16 am

» O que acham do meu 1x1 online?
por jonasstink Hoje à(s) 4:24 am

» [Apresentação] Cool Green 2.0 - Dark Version
por dharrison Hoje à(s) 2:23 am

» Match the Color
por allan_machado49 Hoje à(s) 12:32 am

» Erro no exemplo Google Mobile ads
por fabiomwm Ontem à(s) 11:36 pm

» Halloween 3d
por JoaoVanBlizzard Ontem à(s) 10:46 pm

» GmJ#01 - Participe!
por Gonçalves Ontem à(s) 10:44 pm

» CBNA Light Engine - Sombra Solar
por matheusco Ontem à(s) 7:54 pm

» Plobema com o gms
por gabrielsch Ontem à(s) 5:19 pm

» Erro ao abrir executável do GMS
por Lauro Ontem à(s) 2:01 pm

» Pergunta sobre o mouse em cima dos botoes
por guamaral Ontem à(s) 1:59 pm

» Minha galeria de desenhos (douglas444)
por douglas444 Ontem à(s) 1:35 pm

» troco engines uahuaahu
por Gonzo Ontem à(s) 1:32 pm

» Criar templates e templates de templates
por Fledeber Ontem à(s) 1:16 pm

» [TUTORIAL] Função facebook_graph_request
por Gonzo Ontem à(s) 12:00 pm

» Como Resolver Este Bug Bizarro
por Chingling152 Ontem à(s) 10:33 am

» Mary-A endless cursed bloody night
por JoaoVanBlizzard Ontem à(s) 9:36 am

» Island.pdf
por Tiger Qui Out 23, 2014 10:28 pm

» sprite sofre distorção
por Dotted Chaos Qui Out 23, 2014 7:06 pm

» [Grafico e programaçao] Bons?
por Isaque Onix Qui Out 23, 2014 3:42 pm

» Como fazer ir para uma room aleatoria?
por Thyago Qui Out 23, 2014 1:43 pm

» Dúvidas de como personalizar o meu load game
por Isaque Onix Qui Out 23, 2014 1:31 pm

» [CQ#22] GUERRA! O Ultimo CQ de 2014
por dharrison Qui Out 23, 2014 1:29 pm

» [Resolvido][ajuda] valor unico
por Isaque Onix Qui Out 23, 2014 12:55 pm

» Dúvida Estranha sobre Port on Screen/View in Room
por matheusco Qui Out 23, 2014 12:04 pm

» Como colidir,mas sem grudar na parede?
por vitorfernandes13 Qua Out 22, 2014 9:41 pm

» [Demo] Submundo 3D
por douglas444 Qua Out 22, 2014 8:48 pm

» [Como Faz?] Contador de jogo de corrida 3.2.1
por WellingtonBecker Qua Out 22, 2014 5:42 pm

» Splash_web no Game Maker
por Lauro Qua Out 22, 2014 2:38 pm

» Artes de conceito
por gabrielgeazi2 Qua Out 22, 2014 2:05 pm

» (Resolvido) game de tiro com visão isométrica?
por manobrother Qua Out 22, 2014 12:58 pm

» [CAMPANHA] Salvem o Chatbox!
por Mr.Rafael Qua Out 22, 2014 11:53 am

» problemas ganhar health
por JoaoVanBlizzard Qua Out 22, 2014 10:24 am

» Pixel Art - Avaliem meus tilesets
por paulovmdutra Qua Out 22, 2014 8:54 am

» como cancelo somente uma ação abaixo?
por theguitarmester Qua Out 22, 2014 8:43 am

» Perder vida por cada instancia/objeto na room
por theguitarmester Qua Out 22, 2014 8:06 am

» The Book of Josh
por matheusco Ter Out 21, 2014 11:38 pm

» [Como Faz?] Barra com Contador estilo Doodle Jump
por GeraldRobotnik Ter Out 21, 2014 6:42 pm

» League of Legends Update 19-10-2014
por Isaque Onix Ter Out 21, 2014 6:05 pm

» [CQ#21] Resultados
por douglas444 Ter Out 21, 2014 3:51 pm

» [CQ#21] Sprinters
por Sewer Crawler Ter Out 21, 2014 2:16 pm

» Bug quando Colide com inimigo
por Isaque Onix Ter Out 21, 2014 1:29 pm

» Como criar uma rampa?
por Isaque Onix Ter Out 21, 2014 12:50 pm

» Sprites-Use se quiser :)
por Mateus O de Andrade Ter Out 21, 2014 10:44 am

» [CQ#21] Harvest Nectar! Before Winter Arrives V2.1
por douglas444 Ter Out 21, 2014 9:39 am

» Block Buster
por theguitarmester Ter Out 21, 2014 8:47 am

» Projeto F1
por Mateus O de Andrade Ter Out 21, 2014 8:10 am

» Como Resolver Este Bug
por Rodrigo Santiago Ter Out 21, 2014 5:56 am

» Criação de Equipe
por AG Games Seg Out 20, 2014 9:57 pm

» Cartão Pré pago internacional
por cascavelo Seg Out 20, 2014 4:37 pm

» Marketplace da GMBR
por VanMall Dom Out 19, 2014 9:59 pm

» [Resolvido] Problema com draw_sprite_ext
por matheusco Dom Out 19, 2014 9:39 pm

» [Projeto]Super Mario 75
por Lizarus Dom Out 19, 2014 5:38 pm

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

» O perigoso Projeto! v 1.0.1
por Alex FC Sab Out 18, 2014 2:41 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

» 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 fazer 1 checador de som
por willcraft 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


[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: 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: 2377
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: 138

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


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