Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk melukis poligon, lengkok dan elips dalam PHP? (Penjelasan terperinci dengan gambar dan teks)

Bagaimana untuk melukis poligon, lengkok dan elips dalam PHP? (Penjelasan terperinci dengan gambar dan teks)

WBOY
Lepaskan: 2023-04-10 17:52:01
asal
3255 orang telah melayarinya

Dalam artikel sebelumnya, saya membawakan anda " Analisis terperinci tentang cara mentakrifkan warna, melukis mata, garisan dan segi empat tepat dalam PHP? 》, yang bercakap tentang pengetahuan yang berkaitan tentang titik lukisan, garisan dan segi empat tepat dalam PHP Dalam artikel ini, mari kita lihat cara melukis grafik lain. Semoga ia membantu semua orang!

Bagaimana untuk melukis poligon, lengkok dan elips dalam PHP? (Penjelasan terperinci dengan gambar dan teks)

Selepas artikel sebelum ini, saya telah pun memahami asas lukisan grafik dengan PHP, termasuk cara melukis segiempat tepat, maka segi tiga dan pentagon Bagaimana patutkah ia dilukis? Jadi mari kita lihat cara melukis poligon dalam PHP.

Melukis poligon

agak serupa dengan melukis segi empat tepat Terdapat dua fungsi untuk melukis poligon, iaitu fungsi imagepolygon() dan fungsi imagefilledpolygon(), format sintaksnya adalah seperti berikut:

imagepolygon(resource $image, array $points, int $num_points, int $color)
imagefilledpolygon(resource $image, array $points, int $num_points, int $color)
Salin selepas log masuk

Sebab mengapa kedua-dua fungsi itu serupa dengan segi empat tepat adalah kerana warna di belakang fungsi imagepolygon() ialah warna tepi poligon , imagefilledpolygon( )Warna selepas fungsi ialah warna yang digunakan untuk mengisi bahagian dalam poligon yang dilukis.

Dalam sintaks, $imej mewakili kanvas $points ialah tatasusunan $num_points digunakan untuk menetapkan bilangan bucu poligon, yang mesti lebih daripada 3.

Contoh adalah seperti berikut:

<?php
    $img = imagecreate(300, 150);
    imagecolorallocate($img, 255, 255, 255);
    $green = imagecolorallocate($img, 0, 255, 0);
    $blue = imagecolorallocate($img, 0, 0, 255);
    $points1 = array(
        255,35,
        250,15,
        295,56,
        233,115,
        185,77
    );
    $points2 = array(
        10,5,
        100,15,
        140,66,
        70,135,
        25,77
    );
    imagepolygon($img, $points1, rand(3, 5), $blue);
    imagefilledpolygon($img, $points2, rand(3, 5), $green);
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>
Salin selepas log masuk

Hasil keluaran:

Bagaimana untuk melukis poligon, lengkok dan elips dalam PHP? (Penjelasan terperinci dengan gambar dan teks)

Lukis elips

Dalam PHP, anda boleh menggunakan fungsi imageellipse() untuk melukis elips, sama seperti melukis poligon, anda juga boleh menggunakan fungsi imagefilledellipse() untuk melukis elips dan mengisinya. Format sintaksnya adalah seperti berikut:

imageellipse(resource $image, int $x, int $y, int $width, int $height, int $color)
imagefilledellipse(resource $image, int $x, int $y, int $width, int $height, int $color)
Salin selepas log masuk

Antaranya, $x dan $y masing-masing mewakili koordinat mendatar dan menegak pusat elips $width dan $height mewakili lebar dan tinggi elips masing-masing, dan $colorb berikut masing-masing mewakili warna tepi dan ketinggian elips.

Contohnya adalah seperti berikut:

<?php
    $img = imagecreate(300, 150);
    imagecolorallocate($img, 255, 255, 255);
    $green = imagecolorallocate($img, 0, 255, 0);
    $blue = imagecolorallocate($img, 0, 0, 255);
    imagefilledellipse($img, 75, 75, 120, 80,  $green);
    imageellipse($img, 225, 75, 90, 120,$blue);
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>
Salin selepas log masuk

Hasil keluaran:

Bagaimana untuk melukis poligon, lengkok dan elips dalam PHP? (Penjelasan terperinci dengan gambar dan teks)

Lukis arka

Dalam PHP, anda boleh menggunakan fungsi imagearc() dan fungsi imagefilledarc() untuk melukis lengkok atau bulatan. Perbezaannya ialah fungsi imagearc() melukis arc. Warna ialah warna tepi, dan arka yang dilukis oleh fungsi imagefilledarc() akan diisi. Format sintaksnya adalah seperti berikut:

imagearc(resource $image, int $x, int $y, int $width, int $height, int $start, int $end, int $color)
imagefilledarc(resource $image, int $x, int $y, int $width, int $height, int $start, int $end, int $color, int $style)
Salin selepas log masuk

di mana $x dan $y masing-masing mewakili koordinat mendatar dan menegak bagi titik pusat lengkok $width dan $height masing-masing mewakili lebar dan tinggi lengkok; $mula dan $akhir masing-masing mewakili sudut titik permulaan dan sudut titik akhir lengkok.

Apa yang perlu kita ambil perhatian ialah fungsi imagefilledarc() mempunyai satu lagi parameter $style daripada fungsi imagearc() Parameter ini digunakan untuk menetapkan jenis isian warna. Ia mempunyai jenis berikut:

  • IMG_ARC_PIE: pelapik biasa, menghasilkan sempadan bulat; sambung Titik permulaan dan titik akhir Perlu diingatkan bahawa ia adalah saling eksklusif dengan IMG_ARC_PIE; ;

  • IMG_ARC_CHORD: Sambungkan titik mula dan tamat ke titik tengah dengan garis lurus.

  • Contohnya adalah seperti berikut: IMG_ARC_NOFILL

  • Hasil keluaran:

    IMG_ARC_EDGED

Pembelajaran yang disyorkan :《
Tutorial video PHP

<?php
    $img = imagecreate(300, 100);
    imagecolorallocate($img, 255, 255, 255);
    $blue = imagecolorallocate($img, 0, 0, 255);
   
    imagearc($img, 100, 50, 50, 80, 0, 270, $blue);
 
    imagefilledarc($img, 200, 55, 80, 30, 130, 100, $blue, IMG_ARC_EDGED|IMG_ARC_NOFILL);
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk melukis poligon, lengkok dan elips dalam PHP? (Penjelasan terperinci dengan gambar dan teks). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan