Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    103

    calcolare un poligono dati 2 punti in php... sapete come si fa?

    Salve, ho due coordinate A e B e devo trovare tutto ciò che si trova in mezzo e per farlo ho la necessità di creare un rettangolo che abbia A e B come centri dei lati minori ma non ho la più pallida idea di come creare questo poligono, cioè come recuperare le coordinate dei 4 punti del rettangolo per poi inviarlo a MySQL

  2. #2
    EDIT:

    Ma sei sicuro che A e B debbano essere "i centri dei lati minori"? Tradotto in formula che vorrebbe dire?
    Ultima modifica di Santino83_02; 02-01-2014 a 18:12
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    se ti da i centri del lato minore ti deve anche dire la dimensione dei due lati. sapendola puoi calcolare facilmente le coordinate dell'intero poligono partendo da quelle due coordinate
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  4. #4
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    103
    Per una mia necessità si, A e B devono essere il centro dei lati minori.
    In formule sarebbe così:
    prima calcolo il coefficiente angolare della retta che ho già, quindi (yB - yA)/(xB-xA) e fin qui nessun problema
    secondo calcolo due rette parallele alla stessa distanza, quindi considerando la retta passante per i due punti A e B devo solo aggiungere e togliere dal coefficiente b della retta un valore comune che ho arbitrariamente deciso essere 5.
    terzo calcolo le due rette perpendicolari alla retta AB passanti rispettivamente per A e B, quindi y-yA = -1mAB(x - xA) e y-yB = -1mAB(x - xB)
    quarto ed ultimo calcolo le intersezioni tra le rette perpendicolari facendo un sistema tra le rette interessate.

    Questo carta e penna... algoritmicamente parlando non ho idea di come realizzarlo...

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    L'algoritmo è quello che hai appena scritto.
    In PHP devi solo scrivere le relative formule.
    Se poi questo rettangolo devi anche disegnarlo, allora guardati come funziona la libreria GD.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    103
    Ho risolto... anche se forse non nel migliore dei modi. Faccio l'esempio per calcolare uno dei 4 punti:
    A(xA,xB) - B(xB,yB)
    funzione di una retta: y = m*x+b
    i coefficienti delle rette parallele saranno denominati con m2 e m3, b2 e b3
    i coefficienti delle rette perpendicolari saranno mPA e mPB, bPA e bPB
    mAB = (yB-yA)/(xB-xA);
    bAB = mAB * xA;
    b2 =bAB - 5;
    b3 = bAB + 5;

    retta perpendicolare per A:
    mPA = -mAB;
    bPA = (mPA * -xA)+yA;

    retta perpendicolare per B:
    mPB = -mAB;
    bPB = (mPB * -xB)+yB;

    Calcolo di uno dei vertici, C:
    xC = (bPA-b3)/(mAB + mPA);
    yC = (mPA*xC)+bPA;

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    103
    Mi ero scordato di dire che i punti sono coordinate geografiche in lat e lon... E che con quelle formule a quanto pare non posso calcolare ciò che voglio... Ho provato ma escono valori assurdi :'(

  8. #8
    probabilmente ti devi buttare sulla trigonometria sferica
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    103
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    probabilmente ti devi buttare sulla trigonometria sferica
    di cui non ho nessunissima informazione :'(

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    103
    Quote Originariamente inviata da imesh Visualizza il messaggio
    di cui non ho nessunissima informazione :'(
    penso che ripiegherò sul buffer se Mysql me lo permette, faccio la domanda sulla sezione MySQL

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.