Login

Esqueci minha senha

Últimos assuntos
» Uma estranha noite
por douglas444 Hoje à(s) 11:18 am

» Projeto Ômega
por JoaoVanBlizzard Hoje à(s) 10:47 am

» [Resolvido] Profundidade do Desenho
por matheusco Hoje à(s) 10:45 am

» The Cracker's Nightmare 3D [Versão 0.7.1]
por JoaoVanBlizzard Hoje à(s) 10:26 am

» [Tutorial] Sobre código parte 2 !
por gabriel33245900 Hoje à(s) 9:41 am

» Run Bunny, Run!
por theokof98 Hoje à(s) 9:24 am

» FutQuiz
por theokof98 Hoje à(s) 9:19 am

» Queria sistema de colisão igual ao de tibia....
por FlyAway Hoje à(s) 8:03 am

» Calendário de concursos
por PedroX Hoje à(s) 7:41 am

» Ajuda ao clickar com o mouse selecionar uma cartaa
por gabrielsch Hoje à(s) 6:55 am

» Ajuda Sprite
por gabriel33245900 Hoje à(s) 6:16 am

» Crio Trilha Sonora para Games!
por Sandro Casagrande Jr. Hoje à(s) 2:54 am

» Super Cosmonauts
por Molinware Ontem à(s) 11:08 pm

» Tutorial de Multiplayer/Networking Nativo - GMS
por Isaque Onix Ontem à(s) 9:37 pm

» [duvida] game online com mysql
por Isaque Onix Ontem à(s) 9:31 pm

» Como Cria CutsCenes
por WellingtonBecker Ontem à(s) 7:48 pm

» setas esquerda e direita nao funcionam
por WellingtonBecker Ontem à(s) 5:43 pm

» Mega pacote de recursos, sprites, músicas e códigos-fonte!
por Lizarus Ontem à(s) 3:06 pm

» [Script] Desenhar paths texturizados
por Pai véi Ontem à(s) 3:03 pm

» Como criar uma corda/personagem joga a corda?
por Lauro Ontem à(s) 2:47 pm

» [Nova versão beta disponível] Calabouço Fantasma
por douglas444 Ontem à(s) 2:17 pm

» Ajuda. Jogo de Cartas Simples
por Lauro Ontem à(s) 12:11 pm

» [TUTORIAL] Inclua seu jogo no Facebook
por itarodrigo Ontem à(s) 11:20 am

» (resolvido) nos canto
por Isaque Onix Ontem à(s) 11:07 am

» Help! Alguém acha o erro dessa script?
por gabrielsch Ontem à(s) 10:55 am

» Casa da engine
por Alex FC Ontem à(s) 10:26 am

» [Tutorial] Sobre código parte 1 !
por gabriel33245900 Ontem à(s) 10:23 am

» [Thyago]sprites
por Thyago Qua Out 29, 2014 10:48 pm

» [TUTORIAL] Funções do Facebook
por itarodrigo Qua Out 29, 2014 9:55 pm

» 1nsane Codemasters
por gabriel33245900 Qua Out 29, 2014 6:47 pm

» [Duvida] Novo script de zoom
por Gonzo Qua Out 29, 2014 4:01 pm

» Jogos Mobile a partir do estudo de Jogos Antigos
por douglas444 Qua Out 29, 2014 3:00 pm

» Como conheceu a GMBR ?
por jose rocha Qua Out 29, 2014 1:04 pm

» Duvida em alarmes vs pausa manual
por jose rocha Qua Out 29, 2014 1:00 pm

» Precisa-se de Equipe
por Brenno557 Qua Out 29, 2014 12:19 pm

» [CQ#21] Run For Music - Alpha 2.5.1
por theguitarmester Qua Out 29, 2014 7:24 am

» Apresentando-me Sou Kloson
por theguitarmester Qua Out 29, 2014 6:56 am

» Enquetes
por gabriel33245900 Ter Out 28, 2014 8:49 pm

» Gui interativo e randomizar
por Isaque Onix Ter Out 28, 2014 7:36 pm

» [Projeto]Super Mario 75
por douglas444 Ter Out 28, 2014 7:33 pm

» [3D]Como fazer um pause
por DJDAVYD Ter Out 28, 2014 5:54 pm

» Preciso de Spriter(Sprite Maker) Artista grafico
por Lizarus Ter Out 28, 2014 5:49 pm

» GmJ#01 - Participe!
por Droka Ter Out 28, 2014 5:22 pm

» BOMBER TADS 2014
por PedroIgor Ter Out 28, 2014 9:29 am

» problemas com mp_grid_create
por Chingling152 Seg Out 27, 2014 9:46 pm

» [PEDIDO] Sprite papai noel
por guamaral Seg Out 27, 2014 7:19 pm

» Concurso Preferido
por Lauro Seg Out 27, 2014 6:03 pm

» [CQ#21] Resultados
por douglas444 Seg Out 27, 2014 12:54 pm

» Mary-A endless cursed bloody night
por douglas444 Seg Out 27, 2014 12:23 pm

» [ideia]Xadrez Moderno
por Thomaz Seg Out 27, 2014 11:22 am

» Como fazer Um Obj Fica A Uma Certa Distancia
por gabriel33245900 Dom Out 26, 2014 10:34 pm

» (resolvido) problemas com IA
por Thyago Dom Out 26, 2014 5:02 pm

» Criação de Equipe
por Brenno557 Dom Out 26, 2014 4:10 pm

» Sumiu a parte do codigo oO
por jose rocha Dom Out 26, 2014 1:35 pm

» CBNA Light Engine - Sombra Solar
por Black Studio Dom Out 26, 2014 12:59 pm

» engine balão de fala
por JoaoVanBlizzard Dom Out 26, 2014 12:21 pm

» Criação de Equipe de Desenvolvedores
por dharrison Dom Out 26, 2014 10:45 am

» Bug quando Colide com inimigo
por Vini Dom Out 26, 2014 10:33 am

» Acham que devo criar este projeto em versão GM?
por Vini Dom Out 26, 2014 10:15 am

» formaçao de equipe
por Brenno557 Dom Out 26, 2014 9:39 am

» O que acham dessa simulação de 3d?
por Brenno557 Dom Out 26, 2014 9:18 am

» [Resolvido] Bug com a DS_LIST
por Black Studio Sab Out 25, 2014 11:33 pm

» [Arte] Personagens do meu novo projeto
por JOZ. Sab Out 25, 2014 11:00 pm

» Problema estranho de gm
por gabriel33245900 Sab Out 25, 2014 9:42 pm

» Como Criar Um Objeto Que Siga O Player
por Gonçalves Sab Out 25, 2014 9:35 pm

» MapGen - Pt.1
por Gonçalves Sab Out 25, 2014 7:12 pm

» Exposição de consoles
por Gonzo Sab Out 25, 2014 6:22 pm

» [Recrutamento] Team Magma
por Skay Galaxte Sab Out 25, 2014 6:19 pm

» Problema de onde sai o tiro
por Vini Sab Out 25, 2014 4:53 pm

» [Engine] Som 3D
por gabrielsch Sab Out 25, 2014 4:16 pm

» Topógrafo Perdido 2 Alpha 0.1
por Skay Galaxte Sab Out 25, 2014 4:11 pm

» Como Resolver Este Bug Bizarro
por Gonçalves Sab Out 25, 2014 2:04 pm

» Ajuda Pra Código!!!!
por Skay Galaxte Sab Out 25, 2014 11:55 am

» Plobema com o gms
por WellingtonBecker Sab Out 25, 2014 11:54 am

» O que acham do meu 1x1 online?
por gabriel33245900 Sab Out 25, 2014 11:36 am

» [Apresentação] Cool Green 2.0 - Dark Version
por Alex FC Sab Out 25, 2014 10:35 am

» Match the Color
por allan_machado49 Sab Out 25, 2014 12:32 am

» Erro no exemplo Google Mobile ads
por fabiomwm Sex Out 24, 2014 11:36 pm

» Halloween 3d
por JoaoVanBlizzard Sex Out 24, 2014 10:46 pm

» Erro ao abrir executável do GMS
por Lauro Sex Out 24, 2014 2:01 pm

» Pergunta sobre o mouse em cima dos botoes
por guamaral Sex Out 24, 2014 1:59 pm

» Minha galeria de desenhos (douglas444)
por douglas444 Sex Out 24, 2014 1:35 pm

» troco engines uahuaahu
por Gonzo Sex Out 24, 2014 1:32 pm

» Criar templates e templates de templates
por Fledeber Sex Out 24, 2014 1:16 pm

» [TUTORIAL] Função facebook_graph_request
por Gonzo Sex Out 24, 2014 12:00 pm

» 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


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

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

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