Example #1
0
function draw(&$nodeList, $c)
{
    $image = new Dm_Image(W, H, 0xff000000);
    $graphics = $image->graphics;
    $graphics->lineStyle(0)->fillStyle(0x66ffffff);
    for ($i = 0; $i < C; $i++) {
        $node =& $nodeList[$i];
        $node[2] = 0;
    }
    for ($i = 0; $i < C; $i++) {
        $node =& $nodeList[$i];
        for ($j = $i; $j < C; $j++) {
            if ($i == $j) {
                continue;
            }
            $nNode =& $nodeList[$j];
            $x = $node[0] - $nNode[0];
            $y = $node[1] - $nNode[1];
            $diff = sqrt($x * $x + $y * $y);
            if ($diff < D) {
                $node[2] += 1;
                $nNode[2] += 1;
                $graphics->lineStyle(min(10 * (D - $diff) / D, 4), Dm_Color::argb((D - $diff) / D * 0.6 + 0.2, 255, 255, 255)->toInt())->moveTo($node[0], $node[1])->lineTo($nNode[0], $nNode[1]);
            }
        }
    }
    $graphics->lineStyle(0, 0x11ffffff);
    for ($i = 0; $i < C; $i++) {
        $node = $nodeList[$i];
        $graphics->drawCircle($node[0], $node[1], 2 + $node[2] * $node[2] * 0.2);
    }
    for ($i = 0; $i < C; $i++) {
        $node =& $nodeList[$i];
        $node[0] += $node[3];
        $node[1] += $node[4];
    }
    $count = sprintf('%05d', $c);
    $image->saveTo(DIR_PATH . 'img' . $count . '.gif', 'gif');
}
Example #2
0
require_once $DmDirPath.'Dm/Image/Graphic/Shape.php';
require_once $DmDirPath.'Dm/Image/File.php';
require_once $DmDirPath.'Dm/Image/Filter/Abstract.php';
require_once $DmDirPath.'Dm/Image/Filter/Fit.php';
require_once $DmDirPath.'Dm/Image/Filter/Crop.php';
require_once $DmDirPath.'Dm/Image/Filter/InstagramNormal.php';
require_once $DmDirPath.'Dm/Image/Filter/InstagramLoFi.php';
require_once $DmDirPath.'Dm/Image/Filter/InstagramWalden.php';
require_once $DmDirPath.'Dm/Image/Filter/InstagramToaster.php';
*/
//------------------------------------
// エラー出力(ここは必要に応じて)
//------------------------------------
ini_set('display_errors', 'on');
error_reporting(-1);
set_error_handler('onError');
function onError($errno, $errstr, $errfile, $errline)
{
    var_dump($errno, $errstr, $errfile, $errline);
    exit;
}
//------------------------------------
// サンプル
//------------------------------------
$image = new Dm_Image(400, 300, 0xff0099ff);
$image->textGraphics->setColor(0xffffffff)->setFontSize(30)->textTo(80, 150, 'Hello world.');
$image->saveTo(dirname(__FILE__) . '/saved_image.png');
$image->saveTo(dirname(__FILE__) . '/saved_image.jpg');
$image->saveTo(dirname(__FILE__) . '/saved_image.jpeg');
$image->saveTo(dirname(__FILE__) . '/saved_image.gif');
exit;
Example #3
0
/**
 * Tree \ Learning \ Processing.org
 * http://processing.org/learning/topics/tree.html
 */
define('DIR_PATH', dirname(__FILE__) . DIRECTORY_SEPARATOR . 'img' . DIRECTORY_SEPARATOR);
define('WIDTH', 640);
define('HEIGHT', 360);
$merge = new SimpleGifMerge(DIR_PATH);
$merge->clear();
$l = 100;
for ($i = 0; $i < $l; $i++) {
    $theta = sin($i / $l * pi()) * 2;
    $image = new Dm_Image(WIDTH, HEIGHT, 0xff000000);
    draw();
    $count = sprintf('%05d', $i);
    $image->saveTo(DIR_PATH . $count . '.gif', 'gif');
}
$merge->merge();
function draw()
{
    global $image;
    $image->graphics->lineStyle(1, 0xffffffff)->moveTo(WIDTH / 2, HEIGHT)->lineTo(WIDTH / 2, HEIGHT - 120);
    $h = 120;
    branch($h, -M_PI / 2, WIDTH / 2, HEIGHT - 120);
}
function branch($h, $rotate, $x, $y)
{
    global $image, $theta;
    if ($h < 2) {
        return;
    }