Ho un insieme di punti (punti neri nel valore di coordinate geografiche) derivato dallo scafo convesso (blu) di un poligono (rosso). vedi Figura: python: aiuto per implementare un algoritmo per trovare il rettangolo dell'area minima per i punti dati al fine di calcolare la lunghezza dell'asse maggiore e minore
[(560023.44957588764,6362057.3904932579),
(560023.44957588764,6362060.3904932579),
(560024.44957588764,6362063.3904932579),
(560026.94957588764,6362068.3904932579),
(560028.44957588764,6362069.8904932579),
(560034.94957588764,6362071.8904932579),
(560036.44957588764,6362071.8904932579),
(560037.44957588764,6362070.3904932579),
(560037.44957588764,6362064.8904932579),
(560036.44957588764,6362063.3904932579),
(560034.94957588764,6362061.3904932579),
(560026.94957588764,6362057.8904932579),
(560025.44957588764,6362057.3904932579),
(560023.44957588764,6362057.3904932579)]
devo calcolare la maggiore e minore lunghezza dell'asse seguente modo (formano questo post scrittura in R-progetto e nella Java) o alla this example procedure
- Calcola lo scafo convesso del cloud.
- Per ciascun lato dello scafo convesso: 2a. calcolare l'orientamento del bordo, 2b. ruotare lo scafo convesso usando questo orientamento per calcolare facilmente l'area del rettangolo di delimitazione con min/max di x/y dello scafo convesso ruotato, 2c. Memorizza l'orientamento corrispondente all'area minima trovata,
- Restituisce il rettangolo corrispondente all'area minima trovata.
Dopo che sappiamo The dell'angolo Theta (rappresentato l'orientamento del rettangolo rispetto alla asse y dell'immagine). Il minimo e il massimo di un e b su tutti i punti di confine sono trovati:
- un (xi, yi) = xi * cos Theta + yi peccato Theta
- b (xi, yi) = xi * sin theta + yi cos Theta
I valori (a_max - a_min) e (b_max - b_min) definisce la lunghezza e larghezza, rispettivamente, del rettangolo di una direzione Theta.
Hai già trovato l'algoritmo - Qual è la tua domanda? – Eric
@Eric, grazie per la riproduzione. Sto cercando se in Python questo algoritmo è già implementato (es: in shapely o altro modulo) –
Quindi la tua domanda è _ "Esiste un modulo che già lo fa?" _ – Eric