Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> sinus, cosinus 90, 180, 270, 360 stopni
slawo
post
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 0
Dołączył: 11.01.2010
Skąd: Nowa Dęba

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował slawo 21.09.2016, 19:05:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


To nie głupoty, tylko błąd precyzji obliczeń.

http://stackoverflow.com/a/6243455/5889778
Go to the top of the page
+Quote Post
slawo
post
Post #3





Grupa: Zarejestrowani
Postów: 184
Pomógł: 0
Dołączył: 11.01.2010
Skąd: Nowa Dęba

Ostrzeżenie: (0%)
-----


Wystarczy dopisać funkcję round i zaokrąglić do np 3 miejsca po przecinku. Działa!
Go to the top of the page
+Quote Post
KsaR
post
Post #4





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


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

Ten post edytował KsaR 21.09.2016, 19:17:58
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 01:22