Как нарисовать человечка на PHP
В сети популярны картинки из серии "Ожидание - реальность". Нечто подобное случилось и со мной сегодня.
В общем нашел в сети веселое задание по программированию на PHP. Вот такое примерно было условие:
Нарисовать программно человечка средствами PHP, чтобы у него было:
Причем я сразу понял, что выполнять задание будет гораздо интереснее, если я сначала напишу весь код, а потом посмотрю что получится. Так я и сделал.
Начал я с рисования лица, сделал его овальным (не люблю круглые лица), потом рисовал глаза, сделал их голубыми. Потом нарисовал рот и нос. Уши и в конце уже тело (в виде палочки - заморачиваться не стал), а так же руки и ноги.
Собственно вот мой код:
А вот и картинка в стиле "Ожидание-реальность":
Когда я увидел результат, я сильно удивился. Я немного где-то неверно рассчитал размер лица, но исправлять уже не стал, так как этот тот редкий случай когда реальность превзошла все ожидания в самом хорошем смысле. Честно сказать, изначально результат был не такой: уши и сама голова висели в воздухе и я немного подправил результат. Моя жена сказала, что рисунок чем-то поход на ленивца Сида из "Ледникового периода". А мне кажется, что нарисованный человечек чем-то похож на меня :)
В общем нашел в сети веселое задание по программированию на PHP. Вот такое примерно было условие:
Нарисовать программно человечка средствами PHP, чтобы у него было:
- Туловище
- Ноги
- Руки
- Глаза
- Уши
- Нос
Причем я сразу понял, что выполнять задание будет гораздо интереснее, если я сначала напишу весь код, а потом посмотрю что получится. Так я и сделал.
Начал я с рисования лица, сделал его овальным (не люблю круглые лица), потом рисовал глаза, сделал их голубыми. Потом нарисовал рот и нос. Уши и в конце уже тело (в виде палочки - заморачиваться не стал), а так же руки и ноги.
Собственно вот мой код:
$ris = imagecreatetruecolor(640,480);
$color = imageColorAllocate($ris,255,204,153);//цвет кожи
imageArc($ris,320,119,29,51,0,360,$color);//рисуем голову
$color = imageColorAllocate($ris,0,102,255);//цвет глаз
imageArc($ris,305,102,8,8,0,360,$color);//правый глаз
imageSetPixel($ris,305,102,$color);//правый зрачок
imageArc($ris,335,102,8,8,0,360,$color);//левый глаз
imageSetPixel($ris,335,102,$color);//левый зрачок
$color = imageColorAllocate($ris,255,102,102);//цвет носа
imageLine($ris,320,102,309,122,$color);//нос 1
imageLine($ris,309,122,320,117,$color);//нос 2
$color = imageColorAllocate($ris,255,51,20);//цвет рта
imageArc($ris,320,128,15,12,15,165,$color);//рот
$color = imageColorAllocate($ris,255,204,153);//цвет кожи = цвет ушей
imageArc($ris,335,119,11,17,-93,93,$color);//левое ухо
imageArc($ris,305,119,11,17,87,273,$color);//правое ухо
imageLine($ris,320,145,320,308,$color);//тело
imageLine($ris,320,206,262,274,$color);//правая рука
imageLine($ris,320,206,378,274,$color);//левая рука
imageLine($ris,320,308,262,412,$color);//правая нога
imageLine($ris,320,308,378,412,$color);//левая нога
header('Content-Type: image/jpeg');
imageJpeg($ris);
imageJpeg($ris,'man.jpg');
imagedestroy($ris);А вот и картинка в стиле "Ожидание-реальность":
Когда я увидел результат, я сильно удивился. Я немного где-то неверно рассчитал размер лица, но исправлять уже не стал, так как этот тот редкий случай когда реальность превзошла все ожидания в самом хорошем смысле. Честно сказать, изначально результат был не такой: уши и сама голова висели в воздухе и я немного подправил результат. Моя жена сказала, что рисунок чем-то поход на ленивца Сида из "Ледникового периода". А мне кажется, что нарисованный человечек чем-то похож на меня :)


0 коммент.:
Отправить комментарий