Diciamo che hai dato 2 punti A, B e vuoi sapere in quale halfplane un terzo punto C si trova. I termini "sotto" e "sopra" come criteri sono molto vaghi, quindi è necessario un punto di riferimento, ad esempio l'origine. Assicurati che questo punto di riferimento non sia collineare con A e B.
Quello che hai ora è un triangolo (A, B, C). Utilizzando il determinante è possibile calcolare l'area firmata (see here o here). L'unica cosa interessante qui è ricordare il segno.
Passaggio successivo: per un dato punto D calcolare l'area segnata del triangolo (A, B, D). Se il risultato ha lo stesso segno dell'area del triangolo di riferimento -> C e D sono sullo stesso lato di (A, B). Se il segno differisce -> C e D si trovano sui lati opposti della linea. Se l'area di (A, B, D) è 0 allora A, B e D sono collineari. Nota: utilizzare il built-in Python cmp
per confrontare le aree del triangolo.
Per favore segna i tuoi compiti con il tag [homework]. –