Topic: [PROBLEMA] Verificare se una circonferenza si trova all'interno di un poligono  (Letto 56 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline ChIP_83

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: 0
    • Mostra profilo
Ho un problema che sto cercando di risolvere con Python.
Vorrei verificare se una circonferenza il cui centro e raggio sono noti, si trovi all'interno (anche solo parzialmente) di un'area definita da un poligono chiuso di X punti.
Per farlo avevo pensato di trovare un certo numero di punti ricadenti sul perimetro della circonferenza, secondo un preciso "campionamento".... (vi posto solo le parti principali del codice)

Citazione
X = [ Coor_cerchio['X']+(Diam_cerchio/2) * math.cos(Angolo) for i in range(0, Campionamento) ]

e poi verificare se ognuno di questi punti ricade o meno all'interno dell'area...
Per farlo pensavo di creare un retta, perfettamente verticale passante per il centro della circonferenza e poi verificare se questa retta interseca in numero pari o dispari i lati del poligono (pari interno, dispari esterno).
Questa seconda parte devo ancora scriverla...
Prima di andare avanti, secondo voi c'è un metodo più semplice e più preciso?
Cosa mi consigliate di fare?

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.869
  • Punti reputazione: 9
    • Mostra profilo
ma non ho capito, è un esercizio da risolvere? perché se invece è un problema reale, allora penso che per queste cose ci siano robe come Shapely...

Offline GlennHK

  • python sapiens sapiens
  • ******
  • Post: 1.651
  • Punti reputazione: 1
    • Mostra profilo
    • La Tana di GlennHK
Usa la geometria, potresti controllare se ogni lato interseca la circonferenza, e se il centro della circonferenza è fuori o dentro il poligono.


Per la prima puoi guardare qua, calcolando il coefficiente angolare del lato: [size=78%]https://www.youmath.it/formulari/formulari-di-geometria-analitica/442-posizioni-retta-circonferenza.html[/size]


Per la seconda ci sono in rete vari algoritmi.