Punto en triángulo
El punto (1, 1) está dentro del triángulo de vértices (0, 0), (4, 0) y (0, 3), cuya área es 6. Indique un punto y tres vértices y sepa si queda dentro o fuera, para colisiones en juegos, mallas o deberes. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- X
- 1
- Y
- 1
- X1
- 0
- Y1
- 0
- X2
- 4
- Y2
- 0
- Área
- 6
Decidir si un punto del plano está dentro de un triángulo es un primitivo central de la geometría computacional. Estudiantes que revisan deberes, motores de juego que prueban hitboxes, herramientas GIS que clasifican muestras sobre mallas triangulares y tuberías CAD que validan semillas necesitan una respuesta rápida y determinista, no un croquis a mano. Este comprobador de punto en triángulo acepta las coordenadas de consulta y los tres pares de vértices, construye pesos baricéntricos a partir de áreas con signo de subtriángulos e informa si el punto está dentro (incluido el borde) o fuera. Las coordenadas no numéricas o ausentes también fallan y no se facturan.
Qué significa punto en triángulo y cómo deciden los pesos baricéntricos
Un triángulo en el plano es el envolvente convexo de tres vértices no colineales A, B y C. Un punto de consulta P yace dentro de ese triángulo cuando se puede escribir como combinación convexa de los tres vértices: P igual a a·A más b·B más c·C con a, b y c no negativos y a más b más c igual a uno. Esos pesos a, b y c son las coordenadas baricéntricas de P respecto de ABC.
Algebraicamente equivalen a las razones de las áreas con signo de los tres subtriángulos PBC, PCA y PAB respecto del área con signo de ABC. El doble del área con signo de cualquier triple es el conocido producto cruzado de la fórmula del cordón (shoelace), de modo que toda la prueba es un puñado de multiplicaciones y sumas con una sola división por el área del triángulo.
Cuando los tres pesos son mayores o iguales que cero, P está dentro o en el borde; cuando algún peso es estrictamente negativo, P queda fuera de la arista opuesta. Se aceptan órdenes de vértices en sentido horario y antihorario: el área con signo puede cambiar de signo, pero las razones baricéntricas se mantienen coherentes y la decisión de contención no. Este enfoque evita comparaciones de pendiente que fallan en aristas verticales y evita el ruido del ray casting, mejor reservado para polígonos generales con muchos lados.
Contrato de entrada, forma de la respuesta y comportamiento ante errores
Si los tres vértices son colineales de modo que el valor absoluto del doble del área con signo es cero, el manejador rechaza la solicitud con un mensaje claro de triángulo degenerado porque la contención frente a un segmento no es una prueba de triángulo. Ejemplo: vértices (0,0), (4,0) y (0,3) con consulta (1,1) dan inside true porque todos los pesos baricéntricos son positivos y el área del triángulo es seis. El mismo triángulo con consulta (5,5) da inside false porque al menos un peso es negativo.
Combine la respuesta con su propio gráfico si necesita un croquis; esta capacidad solo clasifica la contención y no emite SVG, números de winding para polígonos generales ni prosa paso a paso de aula más allá de los campos numéricos.
Dónde un comprobador de punto en triángulo resulta útil
Las plataformas educativas y de tutoría usan un comprobador de punto en triángulo para que el alumnado verifique triples de deberes sin dibujar y sin aritmética de pendientes que falle en lados verticales. Los calificadores automáticos de exámenes y LMS necesitan un oráculo determinista que marque de forma coherente interior frente a exterior, trate los puntos del borde como interiores y rechace vértices colineales degenerados en lugar de devolver false en silencio.
El código de juegos y simulación hace hit-test de primitivas triangulares de colisión frente a muestras de jugador o proyectil sin cargar un middleware de física completo para un solo triángulo. Las tuberías GIS y de mallas clasifican puntos de muestra frente a triángulos de Delaunay o de elementos finitos antes de interpolar atributos. La validación fallida no se factura.
Mantenga las solicitudes pequeñas, fije los pesos baricéntricos y el área redondeados en las pruebas y obtendrá respuestas de contención reproducibles para deberes, edge workers y CI sin montar una biblioteca de geometría propia. Para n-ágonos generales use una herramienta hermana de contención en polígono; esta página cubre la intención de búsqueda específica del triángulo.
Qué puede hacer con ella
Comprobaciones en clase y deberes
Permita que el alumnado envíe un punto de consulta y tres vértices y verifique si el punto yace dentro del triángulo sin croquis a mano ni pruebas de pendiente frágiles.
Calificación automática de exámenes y LMS
Califique ítems de punto en triángulo con un oráculo determinista que rechaza vértices colineales degenerados y trata los puntos del borde como interiores.
Preguntas frecuentes
¿Cómo compruebo si un punto está dentro de un triángulo?
Envíe números finitos x,y para la consulta y x1,y1,x2,y2,x3,y3 para los tres vértices.
¿Qué ocurre si el triángulo es degenerado?
Punto en triángulo no está definido para un segmento; esos fallos no se facturan.
¿Importa el orden de los vértices (horario o antihorario)?
No. Ambas orientaciones funcionan. Las áreas con signo cambian de signo a la vez, de modo que las razones baricéntricas y la decisión interior se mantienen coherentes.
¿Un punto sobre un lado o un vértice cuenta como interior?
Sí. Un punto exactamente sobre un lado o un vértice se considera dentro y se marca como situado en el borde, que es la convención habitual para triángulos cerrados en soluciones de ejercicios y mallas.
¿Qué significan los tres pesos del resultado?
Son las coordenadas baricéntricas del punto, una por vértice, y siempre suman 1. Si las tres son cero o más, el punto está dentro; si alguna es negativa, queda más allá del lado opuesto a ese vértice.
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/point-in-triangle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":1,"y":1,"x1":0,"y1":0,"x2":4,"y2":0,"x3":0,"y3":3}'const res = await fetch("https://api.kit.forhosting.com/geom/point-in-triangle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": 1,
"y": 1,
"x1": 0,
"y1": 0,
"x2": 4,
"y2": 0,
"x3": 0,
"y3": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geom/point-in-triangle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": 1,
"y": 1,
"x1": 0,
"y1": 0,
"x2": 4,
"y2": 0,
"x3": 0,
"y3": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geom/point-in-triangle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":1,"y":1,"x1":0,"y1":0,"x2":4,"y2":0,"x3":0,"y3":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":1,"y":1,"x1":0,"y1":0,"x2":4,"y2":0,"x3":0,"y3":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geom/point-in-triangle", 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
{
"x": 1,
"y": 1,
"x1": 0,
"y1": 0,
"x2": 4,
"y2": 0,
"x3": 0,
"y3": 3
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geom.point_in_triangle",
"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
Los triángulos degenerados cuyos vértices son colineales tienen área cero y fallan con invalid_input en lugar de una conjetura vacía.
Qué significa punto en triángulo y cómo deciden los pesos baricéntricos
Los puntos que caen exactamente en un vértice o arista producen un peso nulo y se informan como inside con on_boundary true, según la convención habitual de triángulo cerrado usada en consultas de malla y claves de deberes.
Contrato de entrada, forma de la respuesta y comportamiento ante errores
Envíe un cuerpo JSON con ocho números finitos obligatorios: x e y para el punto de consulta, luego x1 e y1 para el vértice A, x2 e y2 para el vértice B, y x3 e y3 para el vértice C. Cada campo puede llegar como número JSON o como cadena numérica; los campos ausentes, las cadenas vacías, NaN, Infinity y el texto no numérico fallan con invalid_input indicando el campo, y esos fallos no consumen saldo. En caso de éxito, el cuerpo incluye el booleano inside, el booleano on_boundary, las ocho coordenadas eco redondeadas para goldens estables, el área positiva del triángulo, un objeto barycentric con pesos a, b y c redondeados a doce decimales, y method igual a barycentric para que los clientes documenten el algoritmo junto a la respuesta.
Dónde un comprobador de punto en triángulo resulta útil
Como la implementación es de análisis puro de nivel A, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo ni red saliente.
Casos de integración
Consultas en juegos, GIS y mallas
Haga hit-test de primitivas triangulares o clasifique muestras frente a caras de malla con una API de análisis diminuta en lugar de una pila de geometría completa.
Preguntas técnicas
¿Los puntos en la arista se cuentan como interiores?
Sí. Los puntos del borde producen un peso baricéntrico nulo y se informan como inside con on_boundary true, según la convención de triángulo cerrado.
¿Cuánto cuesta el comprobador de punto en triángulo?
La herramienta en el navegador es gratuita. Las solicitudes API usan saldo prepago KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.