Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sinus, cosinus 90, 180, 270, 360 stopni
Forum PHP.pl > Forum > PHP
slawo
Witam, piszę taką pomoc do pracy, która oblicza mi współrzędne X i Y gdy znamy kąt i promień. Wszystko ładnie działa ale gdy podamy kąt 90, 180, 270, 360 wychodzą głupoty.

  1. <?php
  2.  
  3. $kat = addslashes(strip_tags($_POST['kat']));
  4. $promien = addslashes(strip_tags($_POST['promien']));
  5.  
  6. $radiany=($kat*2*M_PI)/360;
  7.  
  8. $y=$promien*sin(deg2rad($kat));
  9. $x=$promien*cos(deg2rad($kat));
  10.  
  11. $y1=$promien*sin($radiany);
  12. $x1=$promien*cos($radiany);
  13.  
  14.  
  15. echo "<br><font size='14'><b>X: ".$x."<br> Y: ".$y."</b></font>";
  16. echo "<br><br><font size='14' color='blue'><b>X: ".$x1."<br> Y: ".$y1."</b></font>";
  17.  
  18. ?>
trueblue
To nie głupoty, tylko błąd precyzji obliczeń.

http://stackoverflow.com/a/6243455/5889778
slawo
Wystarczy dopisać funkcję round i zaokrąglić do np 3 miejsca po przecinku. Działa!
KsaR
Btw. Ja bym dorzucił jeszcze poprawki,
M.in. addslashes i strip_tags jest zbędne.

Tam gdzie deg2rad($kat) zmienił na $radiany.
A $radiany zas zmienil na $radiany = $kat*M_PI/180;

Bo praktycznie obliczasz to samo w deg2rad($kat) mając to już w $radiany
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.