Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Tworzenie paraboli
patryk9200
post
Post #1





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

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


Cześć,
Mam pytanie jak w PHP stworzyć parabolę za pomocą GD?
Muszę stworzyć parabolę funkcji kwadratowej, mam funkcję która oblicza punkty na wykresie przez które ma przechodzić. Narysowałem tylko osie ale paraboli nigdzie nie umiem znaleźć jak zrobić.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Użyj Google


--------------------
Go to the top of the page
+Quote Post
patryk9200
post
Post #3





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

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


dzięki za podpowiedź, znalazłem ciekawy kod ale zamiast obrazka otrzymuję krzaki, co jest nie tak?
  1. <?php
  2. $limit=1000;
  3. $im = imagecreate($limit,$limit);
  4. $bgcolor = imagecolorallocate($im,0,0,0); // white background
  5. $for = imagecolorallocate($im,255,0,0);
  6. $xy= imagecolorallocate($im,0,0,225);$gray = imagecolorallocate($im,0,100,0);for($i=0;$i<=$limit;$i=$i+20){
  7. imageline($im, $i , 0 , $i , $limit,$gray);
  8. }
  9. for($i=0;$i<=$limit;$i=$i+20)
  10. {
  11. imageline($im, 0 , $i , $limit , $i,$gray);
  12. }
  13. imageline($im, 0, $limit/2, $limit, $limit/2, $xy);imageline($im, $limit/2, 0 , $limit/2, $limit, $xy);$x=1;$y=0;$sublimit=$limit/4;
  14. while($x<23)
  15. {
  16. $x=$x+0.01;
  17.  
  18. $y=($limit/2)-($x*$x);
  19. //imageline($im, $x+($limit/2), $y, $x+($limit/2), $y, $for);
  20. imagesetpixel ( $im , $x+($limit/2) , $y , $for );
  21. }
  22. while($x>-23)
  23. {
  24. $x=$x-0.01;
  25. $y=($limit/2)-($x*$x);
  26. imagesetpixel ( $im , $x+($limit/2) , $y , $for );
  27. }
  28. imagestring($im,5,($limit-($limit/4))-100,($limit-($limit/4)),"By Chetan Mendhe Y=X*X Equation" , imagecolorallocate($im,225,225,225));
  29.  
  30. imagepng($im);
  31. ?>
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Brak deklaracji nagłówka...

  1. <?php
  2. ...
  3. header('Content-type: image/png');
  4. imagepng($im);
  5. ?>


Ten post edytował Kshyhoo 28.01.2010, 21:54:36


--------------------
Go to the top of the page
+Quote Post
patryk9200
post
Post #5





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

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


Cytat(Kshyhoo @ 28.01.2010, 21:52:15 ) *
Brak deklaracji nagłówka...

[PHP]<?php
header('Content-type: image/png');
imagepng($im);
exit
?>
[PHP]

jak dam tak jak piszesz to wyskakuje błąd:
Warning: Cannot modify header information - headers already sent by (output started at /home/xxyy/ftp/funkcja/wykres.php:1) in /home/xxyy/ftp/funkcja/wykres.php on line 30

Ten post edytował patryk9200 28.01.2010, 22:01:06
Go to the top of the page
+Quote Post
pyro
post
Post #6





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


widziałeś już komunikat na tym forum jak próbujesz napisać posta z frazą hea`ders alrea`dy sent by? bez `


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
patryk9200
post
Post #7





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

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


widziałem ale cokolwiek zastosuje to i tak nie działa
Go to the top of the page
+Quote Post
pyro
post
Post #8





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


No to pokaż co stosujesz.


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
Fifi209
post
Post #9





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Upewnij się, że nic wcześniej nie wysyłasz do przeglądarki...

Kodowanie UTF-8? Zakoduj bez BOM.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
patryk9200
post
Post #10





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

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


już mam dzięki

mam jeszcze jeden problem, jak zrobić, żeby parabola przechodziła przez określone punkty na siatce, a jej wierzchołek też można by było dawać w różnych miejscach siatki oto kod:
  1. <?php
  2. header('Content-type: image/png');
  3. //wielkość obrazka
  4. $limit=1000;
  5. $im = imagecreate($limit,$limit);
  6. $bgcolor = imagecolorallocate($im,200,255,255); // white background
  7. $for = imagecolorallocate($im,255,0,0);
  8. $xy= imagecolorallocate($im,0,0,225);
  9. $gray = imagecolorallocate($im,0,100,0);
  10. for($i=0;$i<=$limit;$i=$i+20){
  11. imageline($im, $i , 0 , $i , $limit,$gray);
  12. }
  13. for($i=0;$i<=$limit;$i=$i+20)
  14. {
  15. imageline($im, 0 , $i , $limit , $i,$gray);
  16. }
  17. imageline($im, 0, $limit/2, $limit, $limit/2, $xy);imageline($im, $limit/2, 0 , $limit/2, $limit, $xy);
  18. $x=1;
  19. $y=0;
  20. $sublimit=$limit/4;
  21. //#####################################################################parabola
  22. while($x<23)
  23. {
  24. $x=$x+0.01;
  25. $y=($limit/2)-($x*$x);
  26. //imageline($im, $x+($limit/2), $y, $x+($limit/2), $y, $for);
  27. imagesetpixel ( $im , $x+($limit/2) , $y , $for );
  28. }
  29. while($x>-23)
  30. {
  31. $x=$x-0.01;
  32. $y=($limit/2)-($x*$x);
  33. imagesetpixel ( $im , $x+($limit/2) , $y , $for );
  34. }
  35. //######################################################################Parabola
  36. imagestring($im,5,($limit-($limit/5))-100,($limit-($limit/25)),"Wykres funkcji: " , imagecolorallocate($im,225,225,225));
  37. imagepng($im);
  38.  
  39. ?>
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #11





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Kombinuj...
$limit/2 zmienia wierzchołek


--------------------
Go to the top of the page
+Quote Post
patryk9200
post
Post #12





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

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


Cytat(Kshyhoo @ 28.01.2010, 23:46:24 ) *
Kombinuj...
$limit/2 zmienia wierzchołek


to już dawno odkryłem natomiast nie umiem sobie poradzić z wielkością paraboli jak ją zmienić, jeszcze jedno jak zrobić żeby jak dam np. 2.5 to się przesunie o 2.5 kratki a nie tak jak teraz nie wiadomo w gdzie, zwiększając np. o 1 i tak dalej okazuje się że wielkość nie jest stała, może znacie inny sposób na to?

Go to the top of the page
+Quote Post
Kshyhoo
post
Post #13





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Parabola jest wykresem funkcji kwadratowej w postaci y=ax2+b. Jeżeli a jest dodatnie, ramiona paraboli skierowane są do góry. b odpowiada za "start" wierzchołka paraboli. Tyle matematyki. nie ma to się nijak do skryptu, gdzie trzeba kombinować wieloma elementami...


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 01:54