Login

Esqueci minha senha

Últimos assuntos
» ColisionMap (Tiles)?
por Kabeção Hoje à(s) 3:21 pm

» [CQ#20] Votação Pública - Participe!
por dharrison Hoje à(s) 2:12 pm

» [#CQ-20] Uddy Eagle Escape
por Alex FC Hoje à(s) 1:58 pm

» GMBR Magazine
por Sr. Sinistro Hoje à(s) 1:39 pm

» Sprite virar conforme a posição do mouse
por LightVelox Hoje à(s) 12:12 pm

» Usando as Funções Random
por DieBoy Hoje à(s) 11:45 am

» [CQ#20]Mary-A endless cursed bloody night
por theokof98 Hoje à(s) 11:35 am

» [#CQ20] Sobrevivência
por theguitarmester Hoje à(s) 9:26 am

» [Dúvida GM:S] - Resolução
por DooMan Hoje à(s) 12:46 am

» [CQ-20]Ataque a torre
por JoaoVanBlizzard Ontem à(s) 11:48 pm

» salvar dados ao passar de fase
por matheusco Ontem à(s) 9:16 pm

» Gomez vs Aliens[CQ-20]
por Tanker GT Ontem à(s) 9:12 pm

» Passar de Fases
por Mestre Rá Ontem à(s) 4:29 pm

» Help! - Show message
por tha.sribeiro Ontem à(s) 12:37 pm

» [ajuda]carregar script externo
por Isaque Onix Ontem à(s) 12:32 pm

» Avaliação - Animação
por Kabeção Ontem à(s) 10:50 am

» [CQ#20] Monkey EVOlution
por leocc Ontem à(s) 10:18 am

» [#CQ20] Robot Survivor
por DieBoy Dom Ago 31, 2014 11:55 pm

» Ajuda com animação
por dharrison Dom Ago 31, 2014 11:28 pm

» [ATIVA] Pixel Place 2014
por PedroMatoso Dom Ago 31, 2014 10:24 pm

» [Tutorial] Tratando strings recebidas do servidor
por GabrielXavier Dom Ago 31, 2014 9:36 pm

» como alterar o codigo fonte de um jogo??
por blackman Dom Ago 31, 2014 8:53 pm

» (resolvido) animar com spriter
por manobrother Dom Ago 31, 2014 8:33 pm

» Ajuda com keyboard_check_direct_pressed()
por Igor KinGamer Dom Ago 31, 2014 7:21 pm

» Criar instancia de acordo com angulo do canhão
por matheusco Dom Ago 31, 2014 6:57 pm

» [#CQ20] The diamond of my life
por AxeInLine Dom Ago 31, 2014 4:44 pm

» Como fazer uma pause
por guamaral Dom Ago 31, 2014 4:12 pm

» Física
por Willy Dom Ago 31, 2014 3:13 pm

» Calendário de concursos
por dharrison Dom Ago 31, 2014 12:46 pm

» Erro bizarro.
por PedroX Dom Ago 31, 2014 12:41 pm

» [THYAGO]Mega soccer
por Thyago Dom Ago 31, 2014 12:25 pm

» [CQ#20] Bob snow - Avalanche downhill
por cascavelo Dom Ago 31, 2014 12:08 pm

» Novos administradores
por isaac138 Dom Ago 31, 2014 11:46 am

» [Sugestão] Botão "Curtir" igual esse aqui (foto)
por superrafao Dom Ago 31, 2014 10:25 am

» Como se aprende Inglês? Como você aprendeu?
por mrHarris Dom Ago 31, 2014 1:46 am

» É possível criar um editor de mapa?
por Camin Sab Ago 30, 2014 11:56 pm

» Projeto Escolar - Criação de jogos eletrônicos
por ChicoGamer Sab Ago 30, 2014 5:43 pm

» [CQ#20] ALAN PSYCHO [completo+download]
por dharrison Sab Ago 30, 2014 9:17 am

» Sistema parecido com o do google ideias pf
por itarodrigo Sex Ago 29, 2014 7:50 pm

» [Ajuda] Erro Android
por itarodrigo Sex Ago 29, 2014 7:48 pm

» Como fazer a aceleração do player
por guamaral Sex Ago 29, 2014 7:45 pm

» [SUGESTÃO] Tutoriais acerca de extensões e Dlls
por AlexBosquin Sex Ago 29, 2014 4:35 pm

» Zshot(Zombie shot)
por dharrison Sex Ago 29, 2014 4:33 pm

» [Extensão] LoadExt
por Lauro Sex Ago 29, 2014 3:27 pm

» Dúvida com Score
por fabert Sex Ago 29, 2014 3:11 pm

» [Resolvido] Mouse Pressed e Draw
por Isaque Onix Sex Ago 29, 2014 11:09 am

» como disparar projeteis??
por Isaque Onix Sex Ago 29, 2014 1:40 am

» [Video aula]Criando mapas facilmente(scripts)
por Isaque Onix Qui Ago 28, 2014 11:35 pm

» [Resolvido]Despertador
por dharrison Qui Ago 28, 2014 10:39 pm

» Como criar um mapa da room
por Isaque Onix Qui Ago 28, 2014 5:23 pm

» Ajuda com grafico...
por Isaque Onix Qui Ago 28, 2014 3:21 pm

» Pesquisa sobre mercado de jogos
por DieBoy Qui Ago 28, 2014 2:56 pm

» Como Criar Um IA
por Susano Qui Ago 28, 2014 2:49 pm

» Erro com game Maker server!!
por superrafao Qui Ago 28, 2014 2:15 pm

» Igualar variaveis
por uilson Qui Ago 28, 2014 1:28 pm

» [RESOLVIDO] Como Abrir arquivo de txt online
por GabrielXavier Qui Ago 28, 2014 11:35 am

» Como fazer uma barra de vida em cima do player
por dharrison Qua Ago 27, 2014 8:35 pm

» duvida com sistema de sprite diferente
por Isaque Onix Qua Ago 27, 2014 4:56 pm

» Meus Efeitos sonoros
por Mateus O de Andrade Qua Ago 27, 2014 1:16 pm

» Game Maker - Aula 9 - Instrução While
por Isaque Onix Qua Ago 27, 2014 11:50 am

» [resolvido]Mudar Torque ingame -physics-
por alexfuziokaandrade7 Ter Ago 26, 2014 9:29 pm

» Sistema de microtransação
por tiotolas Ter Ago 26, 2014 6:22 pm

» como desabilitar um objeto sem que ele suma
por etogodoy Ter Ago 26, 2014 6:18 pm

» Acentos GMS
por ChicoGamer Ter Ago 26, 2014 5:35 pm

» Clone de Boot Hill
por kodmaster Ter Ago 26, 2014 5:22 pm

» Como Ocultar Um Objeto Drawn Em Uma View
por Mateus O de Andrade Ter Ago 26, 2014 4:19 pm

» [Projeto] Space Clash
por Mateus O de Andrade Ter Ago 26, 2014 12:36 pm

» [ajuda] Barra representando uma porcentagem
por dharrison Ter Ago 26, 2014 11:40 am

» Vocês comprariam engines?
por Willy Ter Ago 26, 2014 12:18 am

» Game Maker Studio ler arquivos externos
por AlexBosquin Seg Ago 25, 2014 10:20 pm

» matriz em ordem numérica
por diassis Seg Ago 25, 2014 2:47 pm

» Sprites, Tiles e Gráficos Isometricos Pintados
por diassis Seg Ago 25, 2014 1:46 pm

» Menu De Upgrades, Fases, Itens e Pausa
por Mestre Rá Seg Ago 25, 2014 8:29 am

» Duvida com detecção de cores
por Willy Dom Ago 24, 2014 8:34 pm

» [Resolvido]Como fazer a instancia "sugar" outra instancia?
por |AoX|-richard Dom Ago 24, 2014 7:25 pm

» Posso criar jogos com os graficos Action/RPG Maker
por ChicoGamer Dom Ago 24, 2014 6:57 pm

» Um simples treinamento
por Kabeção Dom Ago 24, 2014 6:17 pm

» [Entrevista] Tanker GT
por PedroX Dom Ago 24, 2014 3:31 pm

» [Resolvido]duvida com colisões por lados
por AlexBosquin Dom Ago 24, 2014 12:47 pm

» Pulo top down
por Thyago Sab Ago 23, 2014 10:18 pm

» Gemtheo
por theclay Sab Ago 23, 2014 10:05 pm

» [CQ#20] Sobrevivendo na Terra [jogo completo]
por allan_machado49 Sab Ago 23, 2014 8:17 pm

» Problema com keyboard_check_pressed
por itarodrigo Sab Ago 23, 2014 7:29 pm

» Too Many Gears
por dharrison Sab Ago 23, 2014 3:43 pm

» mira com o mouse
por Dotted Chaos Sab Ago 23, 2014 2:10 pm

» Crio Trilha Sonora para Games!
por Isaias Malafaia Sex Ago 22, 2014 11:40 pm

» [CQ#20] Tower of Challenge
por PedroX Sex Ago 22, 2014 7:17 pm

» Sozinho na selva [#CQ-20] download disponivel
por PedroX Sex Ago 22, 2014 7:16 pm

» Playing Dead
por Eudes - Hyo Sex Ago 22, 2014 3:37 pm

» 7 dicas para melhorar o desempenho dos seus jogos
por Kabeção Sex Ago 22, 2014 3:27 pm

» Calabouço Fantasma
por JoaoVanBlizzard Sex Ago 22, 2014 2:41 pm

» [Campeão CQ-19]À arca
por Tanker GT Sex Ago 22, 2014 12:23 am

» [CQ#20] Apocalipse Z'
por JoaoVanBlizzard Qui Ago 21, 2014 7:58 pm

» duvida instance_nearest()
por alexfuziokaandrade7 Qui Ago 21, 2014 6:20 pm

» [RESOLVIDO] Problema com código, Collision_line()
por Mateus O de Andrade Qui Ago 21, 2014 12:47 pm

» Meu Primeiro Jogo - Flappy Plane
por paulovmdutra Qui Ago 21, 2014 12:44 pm

» duvida towerfall
por matheusco Qua Ago 20, 2014 11:54 pm

» Game Maker Studio Steam - completo com exporters
por makgamer Qua Ago 20, 2014 9:38 pm

» Ajuda
por Isaque Onix Qua Ago 20, 2014 6:01 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: 347
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: 2326
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: 130

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

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

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

- Tópicos similares

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