Vai al contenuto
Leo

Libreria

Geometria

Giochi e geometria 2D (categoria ``geometria``).

  • 22 voci
  • 22 voci con esempi eseguiti

Funzioni 22

crea_punto(x, y)#

Un punto (o vettore) 2D, cioè la lista [x, y].

Esempioeseguito con Leo
stampa(crea_punto(3, 4))
Uscita
[3, 4]

somma_punti(a, b)#

Somma due punti coordinata per coordinata.

Utile per spostare un punto di un vettore.

Esempioeseguito con Leo
stampa(somma_punti([1, 2], [3, 4]))
Uscita
[4, 6]

sottrai_punti(a, b)#

Il vettore che va da b ad a (a meno b, coordinata per coordinata).

Esempioeseguito con Leo
stampa(sottrai_punti([5, 7], [2, 3]))
Uscita
[3, 4]

scala_punto(punto, fattore)#

Moltiplica le due coordinate per lo stesso numero.

Esempioeseguito con Leo
stampa(scala_punto([2, 3], 10))
Uscita
[20, 30]

lunghezza_vettore(punto)#

La lunghezza del vettore dall'origine al punto.

È la distanza di [x, y] da [0, 0].

Esempioeseguito con Leo
stampa(lunghezza_vettore([3, 4]))
Uscita
5.0

normalizza_vettore(punto)#

Lo stesso vettore ma lungo 1 (stessa direzione).

Serve per avere una direzione pura, senza velocità.

Esempioeseguito con Leo
stampa(normalizza_vettore([3, 4]))
Uscita
[0.6, 0.8]

distanza_punti(a, b)#

La distanza in linea retta fra due punti.

Esempioeseguito con Leo
stampa(distanza_punti([0, 0], [3, 4]))
Uscita
5.0

angolo_tra(a, b)#

L'angolo in gradi (da 0 a 180) fra due vettori che partono dall'origine.

Esempioeseguito con Leo
stampa(angolo_tra([1, 0], [0, 1]))
Uscita
90.0

ruota_punto(punto, gradi, centro = [0, 0])#

Ruota il punto attorno a centro, in senso antiorario.

Esempioeseguito con Leo
stampa(ruota_punto([1, 0], 90))ruota_punto([3, 0], 180, centro = [1, 0])
Uscita
[0.0, 1.0]

punto_in_rettangolo(punto, rettangolo)#

vero se il punto è dentro il rettangolo (bordi inclusi).

Il rettangolo è [x, y, larghezza, altezza].

Esempioeseguito con Leo
stampa(punto_in_rettangolo([2, 2], [0, 0, 5, 5]))
Uscita
vero

rettangoli_si_toccano(a, b)#

vero se i due rettangoli si sovrappongono o si toccano sul bordo.

Ogni rettangolo è [x, y, larghezza, altezza].

Esempioeseguito con Leo
stampa(rettangoli_si_toccano([0, 0, 2, 2], [1, 1, 2, 2]))
Uscita
vero

cerchi_si_toccano(centro1, raggio1, centro2, raggio2)#

vero se i due cerchi si toccano o si sovrappongono.

Esempioeseguito con Leo
stampa(cerchi_si_toccano([0, 0], 3, [5, 0], 3))
Uscita
vero

cerchio_tocca_rettangolo(centro, raggio, rettangolo)#

vero se il cerchio tocca o entra nel rettangolo.

Il rettangolo è [x, y, larghezza, altezza].

Esempioeseguito con Leo
stampa(cerchio_tocca_rettangolo([10, 1], 2, [0, 0, 9, 9]))
Uscita
vero

interpola(inizio, fine, t)#

Il numero fra inizio e fine (t = 0 dà inizio, t = 1 dà fine).

È la "lerp" dei giochi: con t = 0.5 sei a metà.

Esempioeseguito con Leo
stampa(interpola(0, 10, 0.5))
Uscita
5.0

interpola_punto(inizio, fine, t)#

Il punto fra due punti (t = 0 dà inizio, t = 1 dà fine).

Fa scivolare un oggetto da un punto all'altro.

Esempioeseguito con Leo
stampa(interpola_punto([0, 0], [10, 20], 0.5))
Uscita
[5.0, 10.0]

avvicina(valore, verso, passo)#

Avvicina valore a verso di al più passo, senza superarlo.

Comodo per muovere un numero poco alla volta.

Esempioeseguito con Leo
stampa(avvicina(5, 10, 3))stampa(avvicina(5, 10, 100))
Uscita
8
10

rimbalza(valore, minimo, massimo)#

Riporta valore fra minimo e massimo facendolo rimbalzare sui bordi.

A differenza di limita, che si ferma al bordo, qui il valore torna indietro come una pallina.

Esempioeseguito con Leo
stampa(rimbalza(12, 0, 10))stampa(rimbalza(23, 0, 10))
Uscita
8
3

gradi_in_radianti(gradi)#

Trasforma un angolo da gradi a radianti.

Esempioeseguito con Leo
gradi_in_radianti(180)

radianti_in_gradi(radianti)#

Trasforma un angolo da radianti a gradi.

Esempioeseguito con Leo
stampa(radianti_in_gradi(PI_GRECO))
Uscita
180.0

direzione_verso(da, a)#

L'angolo in gradi (da 0 a 360) per andare dal punto da al punto a.

0 è verso destra e si gira in senso antiorario.

Esempioeseguito con Leo
stampa(direzione_verso([0, 0], [1, 0]))stampa(direzione_verso([0, 0], [0, 1]))
Uscita
0.0
90.0

muovi_verso(punto, bersaglio, velocita)#

Il nuovo punto dopo esserti mosso verso bersaglio di velocita.

Se sei più vicino di velocita arrivi esattamente sul bersaglio.

Esempioeseguito con Leo
stampa(muovi_verso([0, 0], [10, 0], 3))
Uscita
[3.0, 0.0]

punto_casuale_in_rettangolo(rettangolo)#

Un punto [x, y] a caso dentro il rettangolo.

Il rettangolo è [x, y, larghezza, altezza]. Ogni volta dà un punto diverso.

Esempioeseguito con Leo
stampa(punto_casuale_in_rettangolo([0, 0, 100, 100]))
Uscita
[18.06809138173505, 96.92430293749679]