[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: imagefilledellipse
Гость_lawbreaker
Привет! Я очень очень слаб в цыклах и не врубаюсь как они работают.
Вот можно етот код передалать в цыкл и етим упростить всё ето?
PHP
<?php

// create a blank image
$image imagecreatetruecolor(500500);

// fill the background color
$bg imagecolorallocate($image000);

// choose a color for the ellipse
$col_ellipse imagecolorallocate($image255255255);
$col_ellipse1 imagecolorallocate($image20205178);
$col_ellipse2 imagecolorallocate($image215152155);
$col_ellipse3 imagecolorallocate($image2550210);
$col_ellipse4 imagecolorallocate($image24120150);
$col_ellipse5 imagecolorallocate($image20150200);
$col_ellipse6 imagecolorallocate($image120200190);
$col_ellipse7 imagecolorallocate($image10019010);
$col_ellipse8 imagecolorallocate($image180500);
$col_ellipse9 imagecolorallocate($image200050);
// draw the white ellipse
imagefilledellipse($image200150300200$col_ellipse);
imagefilledellipse($image200150295195$col_ellipse1);
imagefilledellipse($image200150290190$col_ellipse2);
imagefilledellipse($image200150285185$col_ellipse3);
imagefilledellipse($image200150280180$col_ellipse4);
imagefilledellipse($image200150275175$col_ellipse5);
imagefilledellipse($image200150270170$col_ellipse6);
imagefilledellipse($image200150265165$col_ellipse7);
imagefilledellipse($image200150260160$col_ellipse8);
imagefilledellipse($image200150255155$col_ellipse9);

// output the picture
header("Content-type: image/png");
imagepng($image);





Спустя 18 минут, 29 секунд (12.03.2009 - 18:29) Sylex написал(а):
PHP
<?php

// create a blank image
$image imagecreatetruecolor(500500);

// fill the background color
$bg imagecolorallocate($image000);

// choose a color for the ellipse
$col_ellipse = array();
$col_ellipse[] = imagecolorallocate($image255255255);
$col_ellipse[] = imagecolorallocate($image20205178);
$col_ellipse[] = imagecolorallocate($image215152155);
$col_ellipse[] = imagecolorallocate($image2550210);
$col_ellipse[] = imagecolorallocate($image24120150);
$col_ellipse[] = imagecolorallocate($image20150200);
$col_ellipse[] = imagecolorallocate($image120200190);
$col_ellipse[] = imagecolorallocate($image10019010);
$col_ellipse[] = imagecolorallocate($image180500);
$col_ellipse[] = imagecolorallocate($image200050);

// draw the ellipse
for ($i 0$i<10$i++) {
    
imagefilledellipse($image200150300-($i*5), 200-($i*5), $col_ellipse[$i]);
}

// output the picture
header("Content-type: image/png");
imagepng($image);

Спустя 2 часа, 57 минут, 44 секунды (12.03.2009 - 21:26) Гость_lawbreaker написал(а):
Sylex
можеш мне плиз обяснить как ето работает? а я не врубаюсь. плиз

Спустя 10 часов, 48 минут, 17 секунд (13.03.2009 - 08:15) Sylex написал(а):
ну imagecolorallocate просто выбирает различные цвета, там нет никакой логики. А вот сюда если присмотреться:
Цитата
imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse);
imagefilledellipse($image, 200, 150, 295, 195, $col_ellipse1);
imagefilledellipse($image, 200, 150, 290, 190, $col_ellipse2);
imagefilledellipse($image, 200, 150, 285, 185, $col_ellipse3);
imagefilledellipse($image, 200, 150, 280, 180, $col_ellipse4);
imagefilledellipse($image, 200, 150, 275, 175, $col_ellipse5);
imagefilledellipse($image, 200, 150, 270, 170, $col_ellipse6);
imagefilledellipse($image, 200, 150, 265, 165, $col_ellipse7);
imagefilledellipse($image, 200, 150, 260, 160, $col_ellipse8);
imagefilledellipse($image, 200, 150, 255, 155, $col_ellipse9);


то видно 2 последовательности с шагом 5:
300, 295, 290, 285, 280...255
200, 195, 190, 185, 180...155

Соответственно нужно написать такой цикл, который генерит эту последовательность:
for ($i = 0; $i<10; $i++)
это даст числа 0 1 2 3 4 5 6 7 8 9

300-($i*5) - это простая продумка, подставляй туда эти числа, получишь:
300-(0*5) = 300
300-(1*5) = 295
300-(2*5) = 290
300-(3*5) = 285
300-(4*5) = 280
...

если это не понял - больше объяснять бесполезно, вникай smile.gif

Спустя 15 минут, 23 секунды (13.03.2009 - 08:30) solib написал(а):
Sylex
я бы кстати не заметил такой закономерности! )))

Спустя 52 минуты, 49 секунд (13.03.2009 - 09:23) Sylex написал(а):
solib
ну в этом и суть - найти закономерности и если они есть - использовать циклы

Спустя 11 часов, 16 минут, 45 секунд (13.03.2009 - 20:40) bret написал(а):
lawbreaker
Цитата
for
Циклы for это самые сложные циклы PHP. Они ведут себя так же, как их аналоги из C.
Синтаксис цикла for таков:
PHP
for (expr1expr2expr3


Первое выражение (expr1) вычисляется (выполняется) один раз и безусловно в начале выполнения цикла.

При начале каждой итерации вычисляется expr2. Если оно вычисляется в TRUE, цикл продолжается и выполняется вложенный (-ые) оператор (-ы). Если оно вычисляется в FALSE, выполнение цикла прекращается.

В конце каждой итерации вычисляется (выполняется) expr3.

Каждое из выражений может быть пустым. Пустое expr2 означает, что цикл должен выполняться бесконечно (PHP неявно предполагает, что это условие TRUE, как в C). Это может быть не так бессмысленно, как может показаться, поскольку часто бывает необходимо закончить цикл оператором break вместо использования проверки выражения-условия цикла for.

Рассмотрим следующие примеры. Все они выводят числа от 1 до 10:
PHP
/* пример 1 */

for ($i 1$i <= 10$i++) {
    print 
$i;
}

/* пример 2 */

for ($i 1;;$i++) {
    if (
$i 10) {
        break;
    }
    print 
$i;
}

/* пример 3 */

$i 1;
for (;;) {
    if (
$i 10) {
        break;
    }
    print 
$i;
    
$i++;
}

/* пример 4 */

for ($i 1$i <= 10; print $i$i++);



Конечно, первый пример кажется самым привлекательным (или, возможно, четвёртый), но вы можете обнаружить, что возможность использовать пустые выражения в циклах for оказывается удобной во многих ситуациях.

PHP также поддерживает "синтаксис colon/с двоеточием" для циклов for.

PHP
for (expr1expr2expr3): statement; ...; endfor;


Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.