![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 8.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam napisałem skrypt rysujący wykres na podstawie danych z bazy danych. Chciał bym zmienić wielkość wykresu bo to co mi sie udało zrobić w żaden sposób mnie nie zadowala. Prolemem jest to że nie wiem jak to zrobic.
Kod PHP
Chciał bym żeby linia była bardziej widoczna. Może chodzi o skalowanie. Proszę o pomoc. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
1)Zmień kod:
Bo dla kazdej iteracji tej pętli liczysz wielkośc tablicy. A po liczyć coś 5 tysięcy razy skoro można tylko raz:
2)Przenieś linię:
Na koniec kodu (zaraz przed generowanie obrazka), GD nie obsługuje z-indexowania dlatego wszystko jesr swrysowywane wg kolejności. 3)Jedyny sposób na zwiększenie wysokości wykresu to znalezienie najwyższej jakości w całym zbiorze a potem opisywanie całej reszty wartości jakos % tej najwyższej. 4)Jeżeli nie chodzi o wysokość wykresu a o widocznośc samej linii, rysuj linie podwójnie, przesunięte o 1px lub (jeżeli nie masz zamiaru tam korzystać z pół przezroczystości) skorzystaj z funkcji:
Daję ona naprawde ładnie wyglądające, gładkie linie. Ten post edytował Uriziel01 7.12.2011, 07:44:08 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 8.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie jestem nowy więc można mnie w razie czego poprawiać.
Mam skrypt, który ma rysować wykres wielomianu 3-stopnia. Wszystko fajnie, ale gdy już narysuje mi się wykres na jakimś przedziale, to rysuje się także jakaś linia z kosmosu. Nie wiem jak na to zaradzić. Proszę o pomoc <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Bez nazwy</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Language" content="pl"> <meta name="Generator" content="JTHTML 7.6.2"> </head> <body> <form method="post"> <table> <tr> <td>A: <input type=text name=A /></td> <td>B: <input type=text name=B /></td> <td>C: <input type=text name=C /></td> <td>D: <input type=text name=D /></td> </tr> <tr> <td>zakres X</td><td>od<input type=text name=od /></td> <td>do<input type=text name=do /></td> </tr> <tr><td><input type=submit name="B1" value="Wyślij"></td></tr> </table> </form> <?php $wykres=imagecreatetruecolor(800, 600); $czerwony=imagecolorallocate($wykres, 255, 0, 0); $czarny=imagecolorallocate($wykres, 0, 0, 0); $bialy=imagecolorallocate($wykres, 255, 255, 255); imagefill($wykres, 0, 0, $bialy); imageline($wykres, 0, 300, 800, 300, $czarny); // rysowanie osi x imageline($wykres, 400, 0, 400, 600, $czarny); //rysowanie osi y imagefilledpolygon($wykres, Array(800, 300, 793, 293, 793, 307), 3, $czarny); //rysowanie strzaĹ‚ki na osi x imagefilledpolygon($wykres, Array(400, 0, 393, 7, 407, 7), 3, $czarny); // analogicznie jak wyżej y if($_POST['B1']) { $A=$_POST['A']; $B=$_POST['B']; $C=$_POST['C']; $D=$_POST['D']; $od=$_POST['od']; $do=$_POST['do']; for($x=$od,$v=$y,$z=$x; $x < $do; $x+=0.1) { $y=($A*($x*$x*$x))+($B*($x*$x))+($C*$x)+$D; echo $y."<br />"; imageLine($wykres, ($z)*30+400,($v)*30+300,($x)*30+400,($y)*30+300, $czerwony); $z = $x; $v = $y; } } imagejpeg($wykres,"wykres.jpg"); imagedestroy($wykres); ?> <img src="wykres.jpg" /> </body> </html> |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Nie wyobrażasz Sobie mojego szoku gdy zobaczyłem informacje o odpowiedzi w temacie.
p.s-przepraszam za offtopic Robercie. ![]() Ten post edytował Uriziel01 10.06.2013, 10:09:32 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.04.2025 - 08:49 |