Как можно рисовать графики в PHP коде? Мне надо, чтобы выглядело примерно так:
Здравствуйте! Очень увлёкся Вашим вопросом, и смог добиться результатов. Получилось похоже на ваш график.
Вот код с комментариями:
<?
$size = 420; // размер холста
$cell = 30; // размер клетки
$padding = 15; // отступ от краёв
$image=imagecreatetruecolor($size, $size);
$cellcolor = imagecolorallocate($image, 200, 200, 200); // цвет клеток
$black = imagecolorallocate($image, 0, 0, 0);
$green = imagecolorallocate($image, 0, 200, 0); // цвет графика
// создадим белый фон
$back = imagecolorallocate($image, 255, 255, 255);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
// сетка
for($i=1;$i<$size/$cell;$i++){
imageline($image,$i*$cell,0,$i*$cell,$size,$cellcolor);
}
for($i=1;$i<$size/$cell;$i++){
imageline($image,0,$i*$cell,$size,$i*$cell,$cellcolor);
}
// оси
imageline($image,$size/2,0+$padding,$size/2,$size-$padding,$black);
imageline($image,0+$padding,$size/2,$size-$padding,$size/2,$black);
// стрелки у "y"
imageline($image,$size/2,0+$padding,$size/2-$padding,0+$padding+$padding,$black);
imageline($image,$size/2,0+$padding,$size/2+$padding,0+$padding+$padding,$black);
// стрелки у "x"
imageline($image,$size-$padding,$size/2,$size-$padding-$padding,$size/2-$padding,$black);
imageline($image,$size-$padding,$size/2,$size-$padding-$padding,$size/2+$padding,$black);
// обозначим "x", "y", "0"
imagestring($image, $padding, $size-$padding, $size/2-$padding, "X", $black);
imagestring($image, $padding, $size/2+$padding, 0+$padding, "Y", $black);
imagestring($image, $padding, $size/2+$padding/2, $size/2+$padding/2, "0", $black);
// рисуем методом соединения точек прямыми
$oldx=0;
$oldy=0;
for($i=-1;$i<$size;$i++){
// $x,$y - абсолютные; $x1,$y1 - относительные
$x1=($i-$size/2)/$cell;
$y1=-$x1*$x1+3;// здесь мы задаём функцию. y=-х^2+3
$x=$x1*$cell+$size/2;
$y=$size/2-$y1*$cell;
imageline($image,$x,$y,$oldx,$oldy,$green);
$oldx=$x;
$oldy=$y;
}
// не забудьте вывести правильный заголовок!
header('Content-Type: image/png');
// и наконец, вывод
imagepng($image);
imagedestroy($image);
?>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Встречаю онлайн сервисы на PHP, которые позволяют указать ссылку на сайт и получить мобильное приложение с webview компонентом с предустановленным...
Windows 10, фреймворк Yii2 Установил OpenServer, PHPStorm (лицензия)Настроил интерпретатор на PHP7 x64 из OpenServer, работает
Использую php_xdebugdll, который уже лежит в папке modules\php\PHP-7