Login

Esqueci minha senha

Últimos assuntos
» Ajuda dois objetos executando ao mesmo tempo
por gabrielsch Hoje à(s) 1:23 am

» Variavel criar arquivo *.bat
por Sewer Crawler Hoje à(s) 12:52 am

» Incluir font no jogo
por theokof98 Ontem à(s) 9:53 pm

» Admob para windowsphone
por marcossfc Ontem à(s) 6:12 pm

» [Dll] GMFileSystem
por Carlos1971 Ontem à(s) 1:13 pm

» [Artigo/Tutorial]Componentes Básicos de uma Música
por theguitarmester Ontem à(s) 6:54 am

» Concept Art do Lost Soul
por DooMan Qui Nov 20, 2014 11:26 pm

» Como conheceu a GMBR ?
por DooMan Qui Nov 20, 2014 11:19 pm

» Outside 1.0.2 Final
por DooMan Qui Nov 20, 2014 11:00 pm

» Concurso GMBR 2014: A morte é um novo começo
por PedroX Qui Nov 20, 2014 10:05 pm

» Engine de Quackshot
por Isaque Onix Qui Nov 20, 2014 4:01 pm

» Como Detectar Apenas Paredes Na Frente Do NPC
por Chingling152 Qui Nov 20, 2014 2:11 pm

» Problemas com Engine
por gabrielsch Qui Nov 20, 2014 1:24 pm

» Tutorial de gravidade e movimento em rampas
por Isaque Onix Qui Nov 20, 2014 12:44 pm

» MapGen - Pt.1
por Lauro Qui Nov 20, 2014 12:25 pm

» Histórico de versões - Game Maker Studio
por Lauro Qui Nov 20, 2014 12:19 pm

» Farmanguinhos
por theokof98 Qui Nov 20, 2014 8:23 am

» [RESOLVIDO] Problemas com a view
por Ronaldo Rodrigues Qua Nov 19, 2014 11:01 pm

» É possível usar variável no momento da timeline?
por jonatas.lemuel Qua Nov 19, 2014 10:23 pm

» The World Lost 3D
por Midnight Qua Nov 19, 2014 9:56 pm

» Sobre Teletransportes
por JoaoVanBlizzard Qua Nov 19, 2014 2:30 pm

» [TUTORIAL] Números Aleatórios
por Lauro Qua Nov 19, 2014 1:02 pm

» Tileset parecido com GameBoy - Download disponível
por paulovmdutra Qua Nov 19, 2014 9:56 am

» arrastar o personagem
por caption Qua Nov 19, 2014 6:45 am

» [Campeão CQ-19]À arca
por Tanker GT Ter Nov 18, 2014 11:24 pm

» [Tutorial]Movimento com troca de sprites perfeito
por fredcobain Ter Nov 18, 2014 10:56 pm

» [Tutorial] Sobre código parte 1 !
por fredcobain Ter Nov 18, 2014 10:48 pm

» sprites pokemon
por querempaz Ter Nov 18, 2014 6:40 pm

» Parar "Loop Infinito" de criação de instâncias
por Zero. Ter Nov 18, 2014 3:07 pm

» [Grafico e programaçao] Bons?
por Isaque Onix Ter Nov 18, 2014 10:38 am

» gms font
por Isaque Onix Ter Nov 18, 2014 10:28 am

» Equipe para continuar meu projeto.
por theguitarmester Ter Nov 18, 2014 8:33 am

» [Android]Deslizar view no exio y.
por Thomaz Seg Nov 17, 2014 3:44 pm

» Jams da GMBR
por vitorfernandes13 Seg Nov 17, 2014 1:54 pm

» Procuro equipe!
por ebertzin Seg Nov 17, 2014 11:58 am

» [Resolvido] Obj não aparece no jogo.
por ebertzin Seg Nov 17, 2014 9:51 am

» [CQ#22] GUERRA! O Ultimo CQ de 2014
por dharrison Seg Nov 17, 2014 9:24 am

» screen_redraw não existente no GMS
por Zero. Seg Nov 17, 2014 9:18 am

» RECRUTANDO: procuro pessoas para equipe
por Riccardoric Seg Nov 17, 2014 9:11 am

» Alguem Me Explica Como usar o Draw detalhadamente?
por Lighter Seg Nov 17, 2014 8:11 am

» [C]HERÓIS do ESPAÇO 1.1
por Lucas Farias Seg Nov 17, 2014 7:55 am

» Medieval Tower Defense
por allan_machado49 Seg Nov 17, 2014 2:24 am

» Novo Projeto de Vídeo Aulas - Nerd Reis
por allan_machado49 Seg Nov 17, 2014 1:44 am

» [RECRUTAMENTO] Hunger Games!
por Brenno557 Dom Nov 16, 2014 11:09 pm

» Pegar uma ID de um objeto entre vários iguais
por Zero. Dom Nov 16, 2014 8:15 pm

» GMBR Feed para Firefox e Chrome
por PedroX Dom Nov 16, 2014 7:46 pm

» Super Br Bros - O Projeto
por AG Games Dom Nov 16, 2014 4:44 pm

» [Resolvido]Particulas em Posições Randomicas
por AlexBosquin Dom Nov 16, 2014 4:39 pm

» (Resolvido)O tiro da arma não sai pelo lugar certo
por pilo Dom Nov 16, 2014 4:33 pm

» Acentos GMS
por douglas.dsb Dom Nov 16, 2014 2:30 pm

» Anúncios no site
por matheusco Dom Nov 16, 2014 2:00 pm

» (RESOLVIDO) O que vale mais a pena?
por manobrother Dom Nov 16, 2014 1:12 pm

» Tutoriais para Game Maker
por matheusco Dom Nov 16, 2014 12:15 pm

» Oque pode está acontecendo ?
por Zero. Dom Nov 16, 2014 10:41 am

» Enquete Portal
por PedroX Dom Nov 16, 2014 8:01 am

» Como criar uma rampa?
por Sewer Crawler Sab Nov 15, 2014 7:59 pm

» TCG Book of Kingdoms
por Lauro Sab Nov 15, 2014 6:37 pm

» Ajuda com criação de apk
por Brenno557 Sab Nov 15, 2014 5:50 pm

» Enquetes
por PedroX Sab Nov 15, 2014 3:32 pm

» GM-Experience
por Gonzo Sab Nov 15, 2014 2:47 pm

» Problema com Jdk
por Brenno557 Sab Nov 15, 2014 1:52 pm

» [Como Faz?] Botão Play com contagem
por GeraldRobotnik Sab Nov 15, 2014 12:01 pm

» Game Maker Não Compila
por Willy Sex Nov 14, 2014 6:50 pm

» timer interno
por WellingtonBecker Sex Nov 14, 2014 6:01 pm

» Como fazer algo colidir,e nao aparecer mais la?
por WellingtonBecker Sex Nov 14, 2014 5:51 pm

» Existe como editar o meu jogo em tempo real?
por Gonzo Sex Nov 14, 2014 4:22 pm

» Evento Step sendo apagado
por Zero. Sex Nov 14, 2014 3:19 pm

» dúvida sobre a função 'mplay' no GMS
por Luiz Raizen Sex Nov 14, 2014 1:47 pm

» FutVida - A sua vida de jogador de futebol
por JoaoVanBlizzard Sex Nov 14, 2014 10:07 am

» Aritana - game brasileiro
por Brenno557 Qui Nov 13, 2014 10:03 pm

» [Ajuda] Historia para jogo de zumbis
por Brenno557 Qui Nov 13, 2014 10:01 pm

» [Pedido Tuto] Como Usar o Novo debugger
por AlexBosquin Qui Nov 13, 2014 7:13 pm

» Point and Click Jam(Evento)
por WellingtonBecker Qui Nov 13, 2014 7:09 pm

» [tutorial] Fazendo controle de carros,naves,etc
por douglas.dsb Qui Nov 13, 2014 6:36 pm

» ajuda na avaliação de debug
por Kabeção Qui Nov 13, 2014 11:02 am

» [CQ#22] A Missão
por dharrison Qua Nov 12, 2014 11:08 pm

» Jogos Top-Down
por Eudes - Hyo Qua Nov 12, 2014 10:25 pm

» Como Fazer Jorrar Sangue Na Parede
por JoaoVanBlizzard Qua Nov 12, 2014 9:00 pm

» Musica não carrega ao clicar no load
por marcio_nmedeiros Qua Nov 12, 2014 6:36 pm

» SWF no GMS
por WellingtonBecker Qua Nov 12, 2014 5:27 pm

» Ajuda dividir cartas em 3 montes
por Black.Hackt Qua Nov 12, 2014 4:59 am

» Como fazer com que objetos novos fiquem a frente?
por Isaque Onix Qua Nov 12, 2014 2:50 am

» Tileset de Caverna
por Sewer Crawler Qua Nov 12, 2014 12:55 am

» Caca Niquel
por geotec Ter Nov 11, 2014 11:51 pm

» [Duvida] Zoom só na area selecionada - GMS
por Gonzo Ter Nov 11, 2014 11:00 pm

» Criar um construtor de paredes
por Sewer Crawler Ter Nov 11, 2014 10:11 pm

» Ensinando a Desenhar Um...
por Rodrigo Santiago Ter Nov 11, 2014 7:04 pm

» O que acham do meu 1x1 online?
por Lighter Ter Nov 11, 2014 6:43 pm

» [DISCUSSÃO] Engines - POR QUE NINGUÉM USA???
por PedroX Ter Nov 11, 2014 1:37 pm

» Luz usando Sprites
por matheusco Ter Nov 11, 2014 12:16 pm

» Criar um objeto duas vezes e excluir apenas um
por AlexBosquin Ter Nov 11, 2014 11:07 am

» [CQ#21] Run For Music - Alpha 2.5.1
por theguitarmester Ter Nov 11, 2014 7:38 am

» Super Cosmonauts
por theokof98 Ter Nov 11, 2014 7:30 am

» Erro ao criar APK
por Ronaldo Rodrigues Ter Nov 11, 2014 12:45 am

» [Projeto]Super Mario 75
por Lizarus Seg Nov 10, 2014 6:27 pm

» Utilizar a API - Advertising ID
por tiotolas Seg Nov 10, 2014 1:50 pm

» Como fazer som de passos jogo 2d (de lado)
por Susano Seg Nov 10, 2014 12:03 pm

» Meu primeiro desenho
por DieBoy Dom Nov 09, 2014 9:14 pm

» Código bugado
por Isquilo_Roedor Dom Nov 09, 2014 7:46 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: 2385
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: 140

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


Entre para o Clube do Inglês:

PedroX

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

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

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