Chiamata a metodo non funzionante

di il
1 risposte

Chiamata a metodo non funzionante

Buongiorno a tutti,

ho una classe scritta da me per effettuare dei calcoli di navigazione marittima in php.
il mio problema è che quando chiamo il metodo calcola_cammino_ortodromico della mia classe ottengo sempre 0 come risultato.

posto i codici:

Metodo calcola_cammino_ortodromico della classe Punto:

function calcola_cammino_ortodromico($puntoB){
			// calcola e restituisce il cammino ortodromico calcolato mediante il teorema di eulero
			// cos(cammino) = sen(latitudineA) * sen(latitudineB) + cos(latitudineA) cos(latitudineB) cos(differenzaLongitudine)

			$cammino = new array();
            $latitudineA = $this->get_latitudine();
            $segnoLatitudineA = $latitudineA["segno"];
			$latitudineA = $this->converti_gradi_in_radianti($latitudineA["valoreIntero"]);
            $latitudineB = $puntoB->get_latitudine();
            $segnoLatitudineB = $latitudineB["segno"];
			$latitudineB =$this->converti_gradi_in_radianti($latitudineB["valoreIntero"]);
            $differenzaLongitudineGradi = $this->get_differenza_di_longitudine($puntoB);
			$differenzaLongitudine = $this->converti_gradi_in_radianti($differenzaLongitudineGradi["valore"]);

			$passo1 = abs(sin($latitudineA) * sin($latitudineB));
			$passo2 = abs(cos($latitudineA) * cos($latitudineB) * cos($differenzaLongitudine));

			if ($segnoLatitudineA != $segnoLatitudineB) {
				$passo1 = $passo1 * -1;
			}
			if ($differenzaLongitudineGradi > 90){
				$passo2 = $passo2 * -1;
			}
			
			$cammino["passo1"] = $passo1;
			$cammino["passo2"] = $passo2;
			$cammino["cos"] = $passo1 + $passo2;
			$cammino["valore"] = acos($cammino["cos"]);
			$cammino["valore"] = round($this->converti_radianti_in_gradi($cammino["valore"]) * 60, 2);
			return $cammino;
		}
parte della pagina di navigazione che chiama il metodo:

$puntoA = new Punto($latitudineA, $_POST["segnoLatitudineA"], $longitudineA, $_POST["segnolongitudineA"]);
		$puntoB = new Punto($latitudineB, $_POST["segnoLatitudineB"], $longitudineB, $_POST["segnoLongitudineB"]);

		$cammino = $puntoA->calcola_cammino_ortodromico($puntoB);
        echo $cammino["cos"] ."<br>";
		$rottaIniziale = $puntoA->calcolo_rotta_iniziale_ortodromica($puntoB);
		$differenzaLongitudine = $puntoA->get_differenza_di_longitudine($puntoB);
sottolineo che tutti gli altri metodi della classe funzionano perfettamente.. e che questi utilizzano gli stessi metodi di incapsulamento che usa questo metodo quindi anche quelli devono funzionare perfettamente, per esempio $this->get_latitudine(); funziona in altri metodi quindi l'errore non può essere in uno di questi metodi.

ringrazio tutti in anticipo per l'aiuto che mi darete!

1 Risposte

  • Re: Chiamata a metodo non funzionante

    Mi sono appena accorto che il metodo non mi restituisce 0, ma semplicemente non viene nemmeno chiamato, infatti ho inserito echo "ciao<br>"; nella prima riga del metodo calcola_cammino_ortodromico e mi sono reso conto che non viene scritto nulla quindi il metodo non viene nemmeno chiamato!!! qualcuno ci capisce più di me in questo problema?
Devi accedere o registrarti per scrivere nel forum
1 risposte