PHP繪製3D圖形之自訂圖形及向量圖

來源:互聯網
上載者:User

本篇介紹自訂及向量圖執行個體。首先繪製一個三尖角星體,分別由“前面”,“後面”和三個“側面”組成。 自訂多邊形

代碼:

<?php
require_once('Image/3D.php');
$image = new Image_3D();
$image->setColor(new Image_3D_Color(255, 255, 255));
//建立光源 
$light1 = $image->createLight('light',array(-50, -50, -50));
$light1->setColor(new Image_3D_Color(100, 250, 100));

$light2 = $image->createLight('light',array(50, -50, 0));
$light2->setColor(new Image_3D_Color(100, 100, 250));

$light3 = $image->createLight('light',array(50, 50, 0));
$light3->setColor(new Image_3D_Color(50, 0, 100));

//建立多邊形數組
$polygons = array();

//前面點座標
$polygons[] = array(
        array(0, -120, 0), array(-18, -12, 0),
        array(-86, 48, 0), array(0, 18, 0),
        array(86, 48, 0), array(18, -12, 0)
       );

//後面點座標
$polygons[] = array(
        array(0, -120, 60), array(-18, -12, 60),
        array(-86, 48, 60), array(0, 18, 60),
        array(86, 48, 60), array(18, -12, 60)
       );

//三側面點座標
$polygons[] = array(
        array(0, -120, 0), array(-18, -12, 0),
        array(-86, 48, 0), array(-86, 48, 60),
        array(-18, -12, 60),array(0, -120, 60)
       );
$polygons[] = array(
        array(-86, 48, 0), array(0, 18, 0),
        array(86, 48, 0), array(86, 48, 60),
        array(0, 18, 60), array(-86, 48, 60)
       );
$polygons[] = array(
        array(86, 48, 0), array(18, -12, 0),
        array(0, -120, 0), array(0, -120, 60),
        array(18, -12, 60),array(86, 48, 60)
       );

//繪製3D映像 
foreach ($polygons as $poly) {
  $points = array();
  foreach ($poly as $set) {
    $points[] = new Image_3D_Point($set[0], $set[1], $set[2]);
  }
  $p = $image->createObject('polygon', $points);
  $p->setColor(new Image_3D_Color(255, 255, 255));
}

$image->transform($image->createMatrix('Rotation', array(-10, -25, -15)));
$image->createRenderer('perspectively');
$image->createDriver('gd');
$image->render(300, 300, 'anim.png');
echo '<img src="anim.png">';
?>

效果圖:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.