Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Obliczanie cotangensa.
Forum PHP.pl > Forum > Przedszkole
Novy.
Siema chciałem zrobić coś do obliczania cotangensa, mam taki o to skrypt:

  1. <?php
  2. function radiany($deg) // funkcja dziala tak samo jak deg2rad, wiec to nie wina funkcji
  3. {
  4. return $deg * M_PI / 180;
  5. }
  6.  
  7. $deltay = "-1542.51";
  8. $deltax = "562.22";
  9.  
  10. $r = $deltay/$deltax; // dziele delty
  11. $wb = abs($r); // wartosc bezwzgledna
  12. $wb = round($wb, 5);
  13.  
  14. $rad = radiany($wb);
  15. $ctan = 1/(tan($rad)); // licze cotangens
  16.  
  17. $ctan = round($ctan, 5);
  18.  
  19. echo "Cotangens jest równy ".$ctan.".";
  20.  
  21. ?>

nospor
http://pl.php.net/manual/en/function.tan.php
Cytat
Workaround for cotangent function

<?php
//FOR PHP 4
function cot($rad)
{
return tan(M_PI_2 - rad2deg($rad));
}

//FOR PHP 3
function cot($rad)
{
return tan(M_PI/2 - rad2deg($rad));
}
Novy.
Mi potrzebne deg -> rad, więc zamieniam..

  1. function cot($rad)
  2. {
  3. return tan(M_PI_2 - deg2rad($rad));
  4. }


I otrzymuje 20.86739, czyli tyle co w skrypcie który napisałem wyżej.

Chyba że nie musze zmieniać tego rad2deg, ale i tak wynik jest zły, bo wynosi jeszcze mniej, 8,coś...
nospor
Skoro masz już w $deg to w kodzie co ci podałem nic masz nie zamieniać.... no troszkę myśl
  1. function cot($deg)
  2. {
  3. return tan(M_PI_2 - $deg);
  4. }
Novy.
oj ;d

co nie zmienia faktu, iż wynik dalej jest zły biggrin.gif

-2.37856057029 jeszcze lepiej haha.gif
nospor
Bo pewnie źle wywołujez tę funkcję. Pokaż kod po zmianach włącznie z funkcją oraz z twoim kodem jak to wszystko wywołujesz i wyliczasz
Novy.
  1. <?php
  2.  
  3. $deltay = "-1542.51";
  4. $deltax = "562.22";
  5.  
  6. $r = $deltay/$deltax; // dziele delty
  7. $wb = abs($r); // wartosc bezwzgledna
  8. $wb = round($wb, 5);
  9.  
  10. function cot($deg)
  11. {
  12. return tan(M_PI_2 - $deg);
  13. }
  14.  
  15. $ctan = cot($wb);
  16. $ctan = round($ctan, 5);
  17.  
  18. echo "Cotangens jest równy ".$ctan.".";
  19.  
  20. ?>
nospor
A na Twoim kalkulatorze tan z 1 stopnia to ile?

Wywolanie powinno byc takie:
$ctan = cot(deg2rad($wb));
cos w tym manualu w komentach źle napisali
Novy.
0,017455064
nospor
zrob poprawke co napisalem w poprzednim poscie. Powinno juz byc dobrze
Novy.
Powinno, ale nie jest :/

Wróciliśmy do punktu wyjścia, wynik to 20.86739.

Nie wiem jak liczy ten kalkulator, że wyszło 69.97405
nospor
Mi wszystko liczy prawidłowo
  1. echo ' '.tan(deg2rad(1));
  2. echo ' '.cot(deg2rad(1));
Novy.
jest dobrze smile.gif dzięki biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.