Interseção reta-plano
Uma reta que sai da origem na direção (1, 1, 1) atinge o plano horizontal de altura 1 no ponto (1, 1, 1), com t igual a 1. Digite um ponto, uma direção e os coeficientes do plano para obter o encontro. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- X0
- 0
- Y0
- 0
- Z0
- 0
- Dx
- 1
- Dy
- 1
- Dz
- 1
- T
- 1
- X
- 1
- Y
- 1
- Z
- 1
Uma reta e um plano no espaço tridimensional se encontram em exatamente um ponto, nunca se encontram porque são paralelos, ou coincidem de modo que todo ponto da reta pertence ao plano. O caso de interseção única é a pergunta cotidiana de lição de casa, CAD e motores de jogo: dados um ponto e uma direção conhecidos da reta e a equação geral do plano ax mais by mais cz mais d igual a zero, quais são as coordenadas do encontro? Esta capacidade aceita dez números—a origem da reta (x0, y0, z0), a direção (dx, dy, dz) e os coeficientes do plano a, b, c, d—, rejeita direção nula, normal de plano nula e qualquer configuração paralela, e devolve o parâmetro paramétrico t junto com o ponto de interseção (x, y, z).
O que é a interseção reta-plano e como a fórmula funciona
Escreva a reta infinita em forma paramétrica como um ponto mais um escalar vezes uma direção: P de t é igual a (x0, y0, z0) mais t vezes (dx, dy, dz). Escreva o plano infinito na forma cartesiana geral como a vezes x mais b vezes y mais c vezes z mais d igual a zero, de modo que o vetor normal N seja (a, b, c).
Substituir o ponto paramétrico na equação do plano produz N produto escalar com P de t mais d igual a zero, que se expande a N produto escalar com o ponto de origem mais t vezes (N produto escalar com D) mais d igual a zero. Resolver o parâmetro livre dá t igual a menos o residual na origem dividido pelo produto normal-direção N·D. As coordenadas de interseção são então x igual a x0 mais t vezes dx, e o mesmo padrão para y e z.
Quando N·D é aproximadamente zero a direção da reta é ortogonal à normal do plano, logo a reta é paralela ao plano: ou nunca o encontra ou jaz inteiramente no seu interior. Uma verificação clássica é a reta pela origem com direção (1, 1, 1) contra o plano horizontal z igual a um (a igual a zero, b igual a zero, c igual a um, d igual a menos um): N·D é um, residual é menos um, t é um e o encontro é (1, 1, 1).
Outra verificação é qualquer reta de direção horizontal contra um plano horizontal em altura diferente: o motor deve falhar com mensagem de paralelo.
Dicas práticas, limites, buscas relacionadas e quando não usar
Se o seu plano for dado por três pontos não colineares, forme dois vetores de aresta, tome o produto vetorial para obter (a, b, c) e fixe d de modo que um dos três pontos satisfaça a equação. Se a sua reta for dada por dois pontos distintos A e B, fixe a origem em A e a direção em B menos A.
Ao ensinar, prefira exemplos emparelhados: origem com direção um-um-um contra z igual a um para o encontro em (1, 1, 1); uma reta vertical contra um plano inclinado para um t não unitário; e uma direção horizontal contra um plano horizontal para demonstrar o caminho de rejeição dura de paralelo. Esta página mira quem busca uma calculadora de interseção reta-plano, reta paramétrica 3D que encontra um plano, ou achar o ponto de interseção de uma reta com ax mais by mais cz mais d igual a zero.
Não é uma ferramenta de recorte de raios que para em um triângulo, nem um recorte só de segmento que ignora encontros fora de [0, 1], nem um auxiliar de interseção reta-reta em 2D—essas são intenções de busca diferentes com contratos diferentes. Prefira esta capacidade quando você já tiver uma reta ponto-direção e a forma geral de um plano infinito em três dimensões.
Checagens de ida e volta são fáceis: após resolver, substitua o (x, y, z) devolvido em a x mais b y mais c z mais d e confirme que o residual é aproximadamente zero, e confirme que (x, y, z) é igual a (x0, y0, z0) mais t vezes (dx, dy, dz) dentro da tolerância flutuante.
Casos de uso
Raio ou reta contra plano de chão, parede ou telhado
Recupere onde uma reta dirigida encontra um plano de obra ou de jogo em forma geral, com erro rígido quando a reta é paralela.
Perguntas frequentes
Qual é a fórmula de interseção reta-plano?
O encontro é P(t). Se o denominador for zero, a reta é paralela.
Por que uma reta paralela gera erro em vez de devolver null?
Quando N·D≈0 não há interseção ou há infinitas (reta no plano).
Isto recorta a um raio ou a um segmento?
Não. Encontra a interseção única da reta infinita com o plano infinito. Restringir t≥0 (raio) ou t∈[0,1] (segmento) é um filtro separado que você pode aplicar sobre o t devolvido.
A calculadora de interseção reta-plano é gratuita?
A ferramenta do navegador é gratuita e roda localmente.
O que acontece se a reta for paralela ao plano?
Se a direção for perpendicular ao vetor normal do plano, a reta nunca o encontra ou fica inteira dentro dele. Nenhum dos dois casos tem um único ponto, então o dado é recusado com uma mensagem em vez de uma resposta inventada.
Como uso um plano dado por três pontos?
Monte dois vetores de lado com os três pontos e calcule o produto vetorial deles: isso dá os coeficientes a, b e c. Depois escolha d para que um dos três pontos satisfaça a equação e digite os quatro números.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/geom/line-plane-intersection \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x0":0,"y0":0,"z0":0,"dx":1,"dy":1,"dz":1,"a":0,"b":0,"c":1,"d":-1}'const res = await fetch("https://api.kit.forhosting.com/geom/line-plane-intersection", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x0": 0,
"y0": 0,
"z0": 0,
"dx": 1,
"dy": 1,
"dz": 1,
"a": 0,
"b": 0,
"c": 1,
"d": -1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geom/line-plane-intersection",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x0": 0,
"y0": 0,
"z0": 0,
"dx": 1,
"dy": 1,
"dz": 1,
"a": 0,
"b": 0,
"c": 1,
"d": -1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geom/line-plane-intersection", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x0":0,"y0":0,"z0":0,"dx":1,"dy":1,"dz":1,"a":0,"b":0,"c":1,"d":-1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x0":0,"y0":0,"z0":0,"dx":1,"dy":1,"dz":1,"a":0,"b":0,"c":1,"d":-1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geom/line-plane-intersection", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"x0": 0,
"y0": 0,
"z0": 0,
"dx": 1,
"dy": 1,
"dz": 1,
"a": 0,
"b": 0,
"c": 1,
"d": -1
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geom.line_plane_intersection",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
O que é a interseção reta-plano e como a fórmula funciona
Ambos os casos paralelos destroem a unicidade, por isso esta calculadora devolve invalid_input em vez de inventar um único ponto. Cada passo é aritmética elementar—sem iteração, sem amostragem, sem dependência do relógio de parede—, de modo que o estudante pode recalcular t à mão com inteiros pequenos e confrontar a API linha a linha.
Como chamar a API e o que retorna
Use-o em pipelines de lição de geometria espacial, checagens de raio contra chão em motores simples, scripts de folga CAD, sandboxes de preparação de entrevistas ou qualquer fluxo que precise de um encontro reta-plano reproduzível sem instalar um pacote de álgebra computacional em cada máquina. Envie um corpo JSON com dez campos numéricos. O campo x0 é a primeira coordenada de um ponto conhecido da reta; os aliases px, point_x e ox são aceitos. O campo y0 é a segunda coordenada; os aliases py, point_y e oy têm o mesmo significado. O campo z0 é a terceira coordenada; os aliases pz, point_z e oz funcionam. Os campos dx, dy e dz são os componentes de direção; os aliases vx, dir_x e os nomes correspondentes em y e z são aceitos. Os campos a, b, c e d são os coeficientes do plano; os aliases A, coeff_a, nx e as formas análogas para b, c e d funcionam. Em caso de sucesso a resposta ecoa as dez entradas, adiciona o parâmetro t, as coordenadas do encontro x, y e z, define parallel como false e method como parametric_dot para que os chamadores possam afirmar o algoritmo em testes. Validação falha—campo obrigatório ausente, número não finito, valor fora dos limites absolutos publicados, vetor de direção nulo, normal de plano nula ou reta paralela em que N·D se anula—devolve invalid_input e nunca é cobrada. O preço é um valor fixo de US$ 0,002 por requisição bem-sucedida com unidade item. Não há modelo de linguagem, nem serviço geométrico externo, nem aleatoriedade, de modo que a capacidade é segura para fixar em checagens de integração contínua e materiais de aula reproduzíveis que comparam objetos JSON completos byte a byte.
Dicas práticas, limites, buscas relacionadas e quando não usar
Mantenha coordenadas e coeficientes dentro da faixa absoluta publicada adequada a figuras CAD e de sala de aula ordinárias para que produtos intermediários permaneçam finitos em precisão dupla IEEE no Worker e no navegador. As unidades são as que você passar—metros, pés ou unidades de jogo—desde que a origem da reta, os componentes de direção e os coeficientes do plano sejam coerentes; a API não converte unidades por você. Tarefas falhas que devolvem invalid_input não consomem saldo pré-pago, o que mantém baratos os scripts exploratórios quando o usuário digita uma direção paralela ao aprender o contrato.
Casos de integração
Checagens de lição e prova para encontros reta-plano
Dê aos alunos uma reta paramétrica e um plano ax+by+cz+d=0; compare o ponto de interseção e o parâmetro t calculados à mão com um resultado determinístico de API ou do navegador gratuito.
Fixtures para CAD, robótica e ferramentas de malha
Scripts que semeiam testes unitários ou colocam âncoras onde um caminho encontra uma restrição planar podem chamar um oráculo puro de interseção em vez de reimplementar a resolução paramétrica em cada linguagem.
Perguntas técnicas
E se a normal do plano for nula?
Se a=b=c=0 a equação não define um plano. A calculadora devolve invalid_input em vez de um ponto de encontro sem sentido.