|
Главная Скачать (Download) Dreamweaver CS6 Dreamweaver CS5 Dreamweaver CS4 Dreamweaver 8 Dreamweaver MX 2004 - Рабочая область
Dreamweaver 4- Создание/ открытие документов - Настройка сайта - Компоновка страниц с CSS - Табличный контент - Шаблоны в MX 2004 - Работа с страницами - Настройка серверных приложений - Рабочая область для динамических страниц Уроки (Tutorials) Видеоуроки new!!! Fireworks ЧаВо Документация Статьи Программы и скрипты Бесплатные шаблоны Каталог сайтов Форум Карта сайта Контакты |
Работа с полигонами Полигон - это абстрактная геометрическая фигура, на которой основывается вся трехмерная компьютерная графика. С греческого языка слово "полигон" переводится как многоугольник. Для рисования полигона используется функция
int imagepolygon ( resource image, array points, int num_points, int color ) где,
Массив точек содержит X и Y координату каждой точки. Таким
образом, для трех точек, массив содержит шесть элементов:
Пример 25. Вывод самого простого полигона (треугольник): <?php header ("Content-type: image/png"); $im = imagecreatetruecolor(320, 240); $ink = imagecolorallocate($im, 255, 255, 255); imagepolygon($im, Array( 100,100, 120,180, 210,160, ), 3, $ink); imagepng($im); imagedestroy($im); ?> Результат работы этой программы выглядит следующим образом: Полигоны очень удобно использовать при работе с векторной графикой. Я использовал полигоны для отрисовки карты мира на сайте top.novgorod.ru. Файлы с контурами стран я создавал в Adobe Photoshop с помощью "Paths" и экспортировал их встроенным плагином "Export Paths to Illustrator". Ниже приведен пример программы, работающей подобным образом. В примере, вместо карты, используется силуэт Софийского Собора в Великом Новгороде. Пример 26. Чтение файла Adobe Illustrator и вывод полигона: <?php // Ширина и высота изображения $W=320; $H=240; // Чтения файла $d=file("Sophia_Novgorod.ai"); // Если массив $d содержит только один элемент, // то в качестве переноса строк используется символ // возврата каретки, и нам необходимо разбить текст // на строку вручную if (count($d)==1) $d=explode("\r",$d[0]); // С помощью регулярного выражение выберем координаты // всех точек $points=Array(); for ($i=0;$i<count($d);$i++) if (eregi("([0-9.]+) ([0-9.]+) [lm]",$d[$i],$r)) { $points[]=$r[1]; $points[]=$r[2]; } // Найдем точки с самыми большими координатами. // Эти значения нам понадобятся для нормализации. $maxw=$maxh=0; for ($i=0;$i<count($points);$i+=2) { if ($maxw<$points[$i]) $maxw=$points[$i]; if ($maxh<$points[$i+1]) $maxh=$points[$i+1]; } // Нормализуем значения координат. for ($i=0;$i<count($points);$i+=2) { $points[$i]/=$maxw; $points[$i+1]/=$maxh; } for ($i=0;$i<count($points);$i+=2) { // Отмасштабируем изображение $points[$i]*=($W-20); $points[$i+1]*=($H-20); // Сдвинем изображение $points[$i]+=10; $points[$i+1]=$H-$points[$i+1]-10; } // Создадим изображение и выделим цвета header ("Content-type: image/png"); $im = imagecreatetruecolor($W, $H); $ink = imagecolorallocate($im, 255, 255, 255); // Вывод полигона imagepolygon($im, $points, count($points)/2, $ink); imagepng($im); imagedestroy($im); ?> Результат работы этой программы выглядит следующим образом: Воспользуемся главным достоинством векторного изображения —
увеличим его до 500x375, а потом и до Все примеры к этому уроку можно скачать Автор: mike
Реклама |
|
|