Intersección recta-plano
Una recta que sale del origen en la dirección (1, 1, 1) corta el plano horizontal de altura 1 en el punto (1, 1, 1), con t igual a 1. Escriba un punto, una dirección y los coeficientes del plano para obtener el corte. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- X0
- 0
- Y0
- 0
- Z0
- 0
- Dx
- 1
- Dy
- 1
- Dz
- 1
- T
- 1
- X
- 1
- Y
- 1
- Z
- 1
Una recta y un plano en el espacio tridimensional se cortan en exactamente un punto, no se encuentran porque son paralelos, o coinciden de modo que todo punto de la recta está en el plano. El caso de intersección única es la pregunta habitual de deberes, CAD y motores de juego: dada un punto y una dirección conocidos de la recta y la ecuación general del plano ax más by más cz más d igual a cero, ¿cuáles son las coordenadas del corte? Esta capacidad acepta diez números—el origen de la recta (x0, y0, z0), la dirección (dx, dy, dz) y los coeficientes del plano a, b, c, d—, rechaza una dirección nula, una normal de plano nula y cualquier configuración paralela, y devuelve el parámetro paramétrico t junto con el punto de intersección (x, y, z).
Qué es la intersección recta-plano y cómo funciona la fórmula
Escriba la recta infinita en forma paramétrica como un punto más un escalar por una dirección: P de t es igual a (x0, y0, z0) más t por (dx, dy, dz). Escriba el plano infinito en forma cartesiana general como a por x más b por y más c por z más d igual a cero, de modo que el vector normal N es (a, b, c).
Sustituir el punto paramétrico en la ecuación del plano da N producto escalar con P de t más d igual a cero, que se expande a N producto escalar con el punto origen más t por (N producto escalar con D) más d igual a cero. Despejar el parámetro libre da t igual a menos el residual en el origen dividido por el producto normal-dirección N·D. Las coordenadas de intersección son entonces x igual a x0 más t por dx, y el mismo patrón para y y z.
Cuando N·D es aproximadamente cero la dirección de la recta es ortogonal a la normal del plano, así que la recta es paralela al plano: o no lo encuentra nunca o yace por completo en su interior.
Una comprobación clásica es la recta por el origen con dirección (1, 1, 1) frente al plano horizontal z igual a uno (a igual a cero, b igual a cero, c igual a uno, d igual a menos uno): N·D es uno, residual es menos uno, t es uno y el corte es (1, 1, 1). Otra comprobación es cualquier recta de dirección horizontal frente a un plano horizontal a distinta altura: el motor debe fallar con un mensaje de paralelo.
Consejos prácticos, límites, búsquedas relacionadas y cuándo no usarla
Si su plano se da por tres puntos no colineales, forme dos vectores arista, tome su producto vectorial para obtener (a, b, c) y fije d de modo que uno de los tres puntos satisfaga la ecuación. Si su recta se da por dos puntos distintos A y B, fije el origen en A y la dirección en B menos A.
Al enseñar, prefiera ejemplos emparejados: origen con dirección uno-uno-uno frente a z igual a uno para el corte en (1, 1, 1); una recta vertical frente a un plano inclinado para un t no unitario; y una dirección horizontal frente a un plano horizontal para demostrar el rechazo duro de paralelo. Esta página se dirige a quienes buscan una calculadora de intersección recta-plano, recta paramétrica 3D que corta un plano, o hallar el punto de intersección de una recta con ax más by más cz más d igual a cero.
No es una herramienta de recorte de rayos que se detiene en un triángulo, ni un recorte solo de segmento que ignora cortes fuera de [0, 1], ni un ayudante de intersección recta-recta en 2D—esas son intenciones de búsqueda distintas con contratos distintos. Prefiera esta capacidad cuando ya disponga de una recta punto-dirección y de la forma general de un plano infinito en tres dimensiones.
Las comprobaciones de ida y vuelta son fáciles: tras resolver, sustituya el (x, y, z) devuelto en a x más b y más c z más d y confirme que el residual es aproximadamente cero, y confirme que (x, y, z) es igual a (x0, y0, z0) más t por (dx, dy, dz) dentro de la tolerancia flotante.
Qué puede hacer con ella
Rayo o recta frente a plano de suelo, muro o cubierta
Recupere dónde una recta dirigida corta un plano de obra o de juego en forma general, con error duro cuando la recta es paralela.
Preguntas frecuentes
¿Cuál es la fórmula de intersección recta-plano?
El corte es P(t). Si el denominador es cero, la recta es paralela.
¿Por qué una recta paralela da error en lugar de devolver null?
Cuando N·D≈0 no hay intersección o hay infinitas (recta en el plano).
¿Recorta a un rayo o a un segmento?
No. Halla la intersección única de la recta infinita con el plano infinito. Restringir t≥0 (rayo) o t∈[0,1] (segmento) es un filtro aparte que usted puede aplicar sobre el t devuelto.
¿Es gratuita la calculadora de intersección recta-plano?
La herramienta del navegador es gratuita y se ejecuta en local.
¿Qué pasa si la recta es paralela al plano?
Si la dirección es perpendicular al vector normal del plano, la recta nunca lo toca o está entera dentro de él. Ninguno de los dos casos tiene un único punto, así que el dato se rechaza con un mensaje en lugar de inventar una respuesta.
¿Cómo uso un plano dado por tres puntos?
Forme dos vectores de lado con los tres puntos y calcule su producto vectorial: así obtiene los coeficientes a, b y c. Después elija d para que uno de los tres puntos cumpla la ecuación y escriba los cuatro números.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"x0": 0,
"y0": 0,
"z0": 0,
"dx": 1,
"dy": 1,
"dz": 1,
"a": 0,
"b": 0,
"c": 1,
"d": -1
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geom.line_plane_intersection",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Qué es la intersección recta-plano y cómo funciona la fórmula
Ambos casos paralelos destruyen la unicidad, por lo que esta calculadora devuelve invalid_input en lugar de inventar un solo punto. Cada paso es aritmética elemental—sin iteración, sin muestreo, sin dependencia del reloj de pared—, de modo que el estudiante puede recalcular t a mano con enteros pequeños y cotejar la API línea a línea.
Cómo llamar a la API y qué devuelve
Úselo en pipelines de deberes de geometría del espacio, comprobaciones de rayo contra suelo en motores sencillos, scripts de despeje CAD, sandboxes de preparación de entrevistas o cualquier flujo que necesite un corte recta-plano reproducible sin instalar un paquete de álgebra computacional en cada máquina. Envíe un cuerpo JSON con diez campos numéricos. El campo x0 es la primera coordenada de un punto conocido de la recta; se aceptan los alias px, point_x y ox. El campo y0 es la segunda coordenada; los alias py, point_y y oy tienen el mismo significado. El campo z0 es la tercera coordenada; funcionan los alias pz, point_z y oz. Los campos dx, dy y dz son los componentes de dirección; se aceptan los alias vx, dir_x y los nombres correspondientes en y y z. Los campos a, b, c y d son los coeficientes del plano; funcionan los alias A, coeff_a, nx y las formas análogas para b, c y d. En caso de éxito la respuesta repite las diez entradas, añade el parámetro t, las coordenadas del corte x, y y z, fija parallel en false y method en parametric_dot para que los llamadores puedan afirmar el algoritmo en pruebas. La validación fallida—falta de un campo obligatorio, un número no finito, un valor fuera de los límites absolutos publicados, un vector de dirección nulo, una normal de plano nula o una recta paralela donde N·D se anula—devuelve invalid_input y nunca se cobra. El precio es un fijo de $0.002 por petición exitosa con unidad ítem. No hay modelo de lenguaje, ni servicio geométrico externo, ni aleatoriedad, así que la capacidad es segura para fijar en comprobaciones de integración continua y materiales de clase reproducibles que comparan objetos JSON completos byte a byte.
Consejos prácticos, límites, búsquedas relacionadas y cuándo no usarla
Mantenga coordenadas y coeficientes dentro del rango absoluto publicado adecuado a figuras CAD y de aula ordinarias para que los productos intermedios sigan siendo finitos en precisión doble IEEE en el Worker y en el navegador. Las unidades son las que usted pase—metros, pies o unidades de juego—siempre que el origen de la recta, los componentes de dirección y los coeficientes del plano sean coherentes; la API no convierte unidades por usted. Las tareas fallidas que devuelven invalid_input no consumen saldo prepago, lo que mantiene baratos los scripts exploratorios cuando el usuario escribe una dirección paralela al aprender el contrato.
Casos de integración
Comprobaciones de deberes y exámenes de cortes recta-plano
Dé a los estudiantes una recta paramétrica y un plano ax+by+cz+d=0; compare su punto de intersección y el parámetro t calculados a mano con un resultado determinista de API o del navegador gratuito.
Fixtures para CAD, robótica y herramientas de malla
Los scripts que siembran pruebas unitarias o colocan anclas donde un camino encuentra una restricción planar pueden llamar a un oráculo puro de intersección en lugar de reimplementar la resolución paramétrica en cada lenguaje.
Preguntas técnicas
¿Qué ocurre si la normal del plano es nula?
Si a=b=c=0 la ecuación no define un plano. La calculadora devuelve invalid_input en lugar de un punto de corte sin sentido.