Due segmenti si intersecano?
Verifichi se due segmenti finiti si incontrano davvero: quello da (0; 0) a (4; 4) e quello da (0; 4) a (4; 0) si incrociano in (2; 2), a metà di ciascuno. Vengono segnalati anche contatti agli estremi e sovrapposizioni. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- X1
- 0
- Y1
- 0
- X2
- 4
- Y2
- 4
- X3
- 0
- Y3
- 4
- Tipo
- proper
- X
- 2
- Y
- 2
- T
- 0,5
Questo verificatore di intersezione di segmenti risponde a una domanda classica della geometria del piano: dati due segmenti di retta chiusi dai loro quattro estremi, si incrociano o si toccano e, in tal caso, dove? Lei fornisce otto numeri finiti—x1, y1, x2, y2 per il segmento AB e x3, y3, x4, y4 per il segmento CD—e il motore risolve le equazioni parametriche A più t volte (B meno A) uguale a C più u volte (D meno C), con entrambi i parametri nell'intervallo unitario chiuso. Quando esiste una soluzione restituisce intersects true, il tipo di contatto (incrocio proprio, tocco all'estremo o sovrapposizione collineare), le coordinate di un punto condiviso e i parametri t e u. Quando i segmenti si mancano restituisce intersects false con kind none e omette i campi del punto.
Cosa significa intersezione di segmenti e come differisce dalle rette infinite
Nella geometria euclidea del piano un segmento di retta è l'insieme chiuso dei punti tra due estremi, non la retta infinita che li prolunga. Due segmenti si intersecano quando condividono almeno un punto: possono incrociarsi negli interni relativi (intersezione propria), incontrarsi solo in un estremo (giunzione a T o vertice condiviso), oppure giacere sulla stessa retta supporto e sovrapporsi su un sottosegmento o su un solo punto (contatto collineare).
L'intento di ricerca si raggruppa intorno a frasi come due segmenti si intersecano, calcolatore di intersezione di segmenti, verificare l'incrocio di segmenti e trovare l'intersezione di due segmenti dalle coordinate. Tale intento è deliberatamente diverso da un risolutore di rette infinite: prolungare entrambi i segmenti come rette complete può inventare un incrocio lontano dai bordi finiti che contano per poligoni, collisioni e collegamenti di mappa.
Il calcolatore tratta i segmenti come chiusi, cosicché il contatto estremo con estremo conta come intersezione e non come un mancato silenzioso, in linea con la convenzione usuale dei segmenti chiusi nei testi di geometria computazionale e nei problemi scolastici.
Dove i controlli di intersezione di segmenti si inseriscono in studio, progettazione e codice
Gli studenti incontrano l'intersezione di segmenti studiando la geometria analitica, gli spigoli dei poligoni e la distinzione tra intervalli aperti e chiusi su una retta. Un libro di testo può dare quattro estremi e chiedere se i segmenti si incrociano, o presentare una figura in cui solo l'estensione come retta infinita si incontrerebbe; questo verificatore restituisce un booleano chiaro più coordinate quando c'è contatto e kind none quando non c'è.
Architetti, topografi e progettisti di livelli di gioco spesso devono sapere se due muri, strade o spigoli di percorso si incontrano davvero entro le lunghezze finite prima di trattare un layout come connesso. Gli sviluppatori invocano lo stesso contratto da script per seminare vettori di test deterministici in librerie di geometria, illustrare test di orientazione in strumenti didattici, o soddisfare enunciati di programmazione che esigono risposte esatte segmento–segmento.
La combini con gli strumenti di punto medio e formula di sezione quando già conosce un segmento e serve punti interni, con il calcolatore di intersezione di rette infinite quando vuole l'incrocio delle rette supporto anche fuori dai segmenti, e con ausili di area di poligoni quando le intersezioni di spigoli alimentano figure piane più ampie.
Casi d'uso
Esercizi sui segmenti per compiti ed esami
Studenti e correttori confermano se due segmenti si incontrano a partire da otto coordinate di estremi, inclusi incroci propri, tocchi all'estremo e mancanze chiare, senza un sistema di algebra computazionale locale.
Controllo spigoli in mesh, CAD e mappe
Gli strumenti che convalidano spigoli di poligoni, collegamenti stradali o muri possono chiedere se due segmenti finiti condividono un punto prima di trattare un grafo come connesso.
Domande frequenti
Quanto costa il verificatore di intersezione di segmenti?
È gratuito nel Suo browser in questa pagina.
Quali input sono obbligatori?
Otto coordinate finite: x1,y1,x2,y2 per il segmento AB e x3,y3,x4,y4 per il segmento CD. La precisione opzionale imposta i decimali da 0 a 15 (predefinito 10).
Come si calcola l'intersezione?
Forma parametrica P = A + t(B−A) = C + u(D−C). Si risolvono t e u con il prodotto vettoriale 2D dei vettori direzione; entrambi i parametri devono stare in [0,1] per un contatto su segmento chiuso.
Cosa succede se manca una coordinata o non è un numero?
Estremi non numerici o infiniti non producono mai un punto di intersezione inventato.
Perché due rette si incrociano mentre i segmenti no?
Le rette non finiscono mai, quindi due rette non parallele si incontrano sempre da qualche parte. I segmenti si fermano agli estremi e l'incrocio delle rette può cadere fuori; in quel caso la risposta è che non c'è contatto.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/geom/segment-intersection \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x1":0,"y1":0,"x2":4,"y2":4,"x3":0,"y3":4,"x4":4,"y4":0}'const res = await fetch("https://api.kit.forhosting.com/geom/segment-intersection", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x1": 0,
"y1": 0,
"x2": 4,
"y2": 4,
"x3": 0,
"y3": 4,
"x4": 4,
"y4": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geom/segment-intersection",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x1": 0,
"y1": 0,
"x2": 4,
"y2": 4,
"x3": 0,
"y3": 4,
"x4": 4,
"y4": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geom/segment-intersection", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x1":0,"y1":0,"x2":4,"y2":4,"x3":0,"y3":4,"x4":4,"y4":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x1":0,"y1":0,"x2":4,"y2":4,"x3":0,"y3":4,"x4":4,"y4":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geom/segment-intersection", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"x1": 0,
"y1": 0,
"x2": 4,
"y2": 4,
"x3": 0,
"y3": 4,
"x4": 4,
"y4": 0
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geom.segment_intersection",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Estremi assenti o non numerici falliscono subito con invalid_input, così la validazione fallita non viene addebitata.
Cosa significa intersezione di segmenti e come differisce dalle rette infinite
Gli studenti vogliono un sì o no numerico con coordinate rispetto a una chiave di correzioni; gli sviluppatori, un oracolo deterministico per test spigolo–spigolo in mesh, regioni di interfaccia e validatori di gare; topografi e assistenti CAD vogliono JSON strutturato da incollare nei rapporti senza reimplementare orientazione o Cramer in ogni linguaggio. Consegnare intersects, kind e campi opzionali di punto come JSON facilita asserzioni in integrazione continua, pipeline più ampie o appunti.
Come si convalidano gli estremi e come si calcola l'intersezione
Il calcolo usa la forma parametrica standard: P uguale ad A più t volte (B meno A) e anche P uguale a C più u volte (D meno C); si forma il sistema due per due il cui determinante è il prodotto vettoriale bidimensionale dei vettori direzione, e si risolvono t e u. Quando il determinante è chiaramente non nullo e entrambi i parametri cadono nell'intervallo unitario chiuso, i segmenti si incontrano in quel P; il contatto all'estremo si segnala quando un parametro vale zero o uno. Quando il determinante si annulla le rette supporto sono parallele: se gli estremi non sono collineari non c'è intersezione; se lo sono, il motore verifica se un estremo di un segmento giace sull'altro e, in caso di sovrapposizione, segnala intersects true con un punto condiviso rappresentativo anziché un intervallo di soluzioni. Non c'è un terzo segmento, né un adattamento ai minimi quadrati, né conversione di unità delle coordinate; l'aritmetica assume un riferimento cartesiano condiviso. Invii un corpo JSON con gli otto campi obbligatori x1, y1, x2, y2, x3, y3, x4 e y4. Ogni campo deve essere un numero finito; sono accettati numeri JSON e stringhe decimali, e alias brevi come ax, ay, bx, by, cx, cy, dx e dy si mappano sulle stesse coordinate. Il motore rifiuta campi assenti, stringhe vuote, NaN e infiniti con invalid_input, cosicché quelle chiamate fallite non vengono addebitate e non inventano mai un falso incrocio.
Dove i controlli di intersezione di segmenti si inseriscono in studio, progettazione e codice
Gli insegnanti possono pre-generare chiavi di risposta che elencano intersects e il punto per casi propri, di estremo e paralleli, e affidarsi a invalid_input per righe incomplete invece di uno spazio vuoto o un Infinity silenzioso. In questa pagina il lavoro gira interamente nel Suo browser; tramite l'API ogni consultazione riuscita costa $0.002, la validazione fallita non viene addebitata e nulla viene memorizzato dopo la risposta. Quella scissione—esplorazione interattiva gratuita e API identica a pagamento—si allinea al catalogo KIT di livello A e Le consente di passare da una demo d'aula a una pipeline automatizzata senza cambiare il risultato matematico.
Casi di integrazione
Fixture geometriche deterministiche
Le pipeline che seminano test unitari, validatori di gare e asserzioni di CI possono chiamare un oracolo puro di intersezione di segmenti invece di reimplementare prodotti vettoriali parametrici in ogni linguaggio.
Domande tecniche
I tocchi agli estremi contano come intersezioni?
Sì. Segmenti chiusi che condividono solo un vertice o si uniscono a T segnalano intersects true con kind endpoint.