3维饼图

Jun 21, 2016 am 09:08 AM
img quot

饼图

一直想发表点东西。最近刚把php4中的php_gd.dll搞定,就迫不及待的想做点图形程序玩玩。看到有许多php做饼图的例子,看了一下都是2维的,于是就想做个3维的。经过努力pie3d完成了,好东西与大家分享。不过小弟是php新手,代码可能不够精炼,希望大家指教共同来完善这个程序。记得通知我(estorm@yeah.net)

+------------------------+
| pie3dfun.php//公用函数 |
+------------------------+

define("ANGLE_STEP",5);//定义画椭圆弧时的角度步长
function chx_getdarkcolor($img,$clr){//求$clr对应的暗色
$rgb=imagecolorsforindex($img,$clr);
return array($rgb["red"]/2,$rgb["green"]/2,$rgb["blue"]/2);
}

function chx_getexy($a,$b,$d){//求角度$d对应的椭圆上的点坐标
$d=deg2rad($d);
return array(round($a*Cos($d)),round($b*Sin($d)));
}

function chx_arc($img,$ox,$oy,$a,$b,$sd,$ed,$clr){//椭圆弧函数
$n=ceil(($ed-$sd)/ANGLE_STEP);
$d=$sd;
list($x0,$y0)=chx_getexy($a,$b,$d);
for($i=0;$i$d=($d+ANGLE_STEP)>$ed?$ed:($d+ANGLE_STEP);
list($x,$y)=chx_getexy($a,$b,$d);
imageline($img,$x0+$ox,$y0+$oy,$x+$ox,$y+$oy,$clr);
$x0=$x;
$y0=$y;
}
}
function chx_sector($img,$ox,$oy,$a,$b,$sd,$ed,$clr){//画扇面
$n=ceil(($ed-$sd)/ANGLE_STEP);
$d=$sd;
list($x0,$y0)=chx_getexy($a,$b,$d);
imageline($img,$x0+$ox,$y0+$oy,$ox,$oy,$clr);
for($i=0;$i$d=($d+ANGLE_STEP)>$ed?$ed:($d+ANGLE_STEP);
list($x,$y)=chx_getexy($a,$b,$d);
imageline($img,$x0+$ox,$y0+$oy,$x+$ox,$y+$oy,$clr);
$x0=$x;
$y0=$y;
}
imageline($img,$x0+$ox,$y0+$oy,$ox,$oy,$clr);
list($x,$y)=chx_getexy($a/2,$b/2,($d+$sd)/2);
imagefill($img,$x+$ox,$y+$oy,$clr);
}

function chx_sector3d($img,$ox,$oy,$a,$b,$v,$sd,$ed,$clr){//3d扇面
chx_sector($img,$ox,$oy,$a,$b,$sd,$ed,$clr);
if($sdlist($R,$G,$B)=chx_getdarkcolor($img,$clr);
$clr=imagecolorallocate($img,$R,$G,$B);
if($ed>180) $ed=180;
list($sx,$sy)=chx_getexy($a,$b,$sd);
$sx+=$ox;
$sy+=$oy;
list($ex,$ey)=chx_getexy($a,$b,$ed);
$ex+=$ox;
$ey+=$oy;
imageline($img,$sx,$sy,$sx,$sy+$v,$clr);
imageline($img,$ex,$ey,$ex,$ey+$v,$clr);
chx_arc($img,$ox,$oy+$v,$a,$b,$sd,$ed,$clr);
list($sx,$sy)=chx_getexy($a,$b,($sd+$ed)/2);
$sy+=$oy+$v/2;
$sx+=$ox;
imagefill($img,$sx,$sy,$clr);
}
}

function chx_getindexcolor($img,$clr){//RBG转索引色
$R=($clr>>16) & 0xff;
$G=($clr>>8)& 0xff;
$B=($clr) & 0xff;
return imagecolorallocate($img,$R,$G,$B);
}

?>

+--------------------------+
| pie3d.php //三维饼图文件 |
+--------------------------+

require("pie3dfun.php");

$a=150;//椭圆长半轴
$b=50;//椭圆段半轴
$v=20;//圆饼高度
$font=5;//字体

$ox=5+$a;
$oy=5+$b;
$fw=imagefontwidth($font);
$fh=imagefontheight($font);


$datLst=array(30,10,20,20,10,20,10,20);//数据
$labLst=array("a1","a2","a3","a4","a5","a6","a7","a8");//标签
$clrLst=array(0x99ff00,0xff6666,0x0099ff,0xff99ff,0xffff99,0x99ffff,0xff3333,0x009999);

$w=10+$a*2;
$h=10+$b*2+$v+($fh+2)*count($datLst);

$img=imagecreate($w,$h);

//转RGB为索引色
for($i=0;$i
$clrbk=imagecolorallocate($img,0xff,0xff,0xff);
$clrt=imagecolorallocate($img,0x00,0x00,0x00);
//填充背景色
imagefill($img,0,0,$clrbk);
//求和
$tot=0;
for($i=0;$i
$sd=0;
$ed=0;
$ly=10+$b*2+$v;
for($i=0;$i $sd=$ed;
$ed+=$datLst[$i]/$tot*360;
//画圆饼
chx_sector3d($img,$ox,$oy,$a,$b,$v,$sd,$ed,$clrLst[$i]);//$sd,$ed,$clrLst[$i]);
//画标签
imagefilledrectangle($img,5,$ly,5+$fw,$ly+$fh,$clrLst[$i]);
imagerectangle($img,5,$ly,5+$fw,$ly+$fh,$clrt);
imagestring($img,$font,5+2*$fw,$ly,
$labLst[$i].":".$datLst[$i]."(".(round(10000*($datLst[$i]/$tot))/100)."%)",
$clrt);
$ly+=$fh+2;
}
//输出图形
header("Content-type:image/gif");
imagegif($img);

?>



Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment ouvrir le fichier img Comment ouvrir le fichier img Sep 18, 2023 am 09:40 AM

Les méthodes pour ouvrir les fichiers img incluent l'utilisation d'un logiciel de lecteur optique virtuel, l'utilisation d'un logiciel de compression et l'utilisation d'outils spéciaux. Introduction détaillée : 1. Utilisez le logiciel de lecteur optique virtuel pour ouvrir, télécharger et installer un logiciel de lecteur optique virtuel, cliquez avec le bouton droit sur le fichier img, sélectionnez "Ouvrir avec" ou "Programme associé", sélectionnez le logiciel de lecteur optique virtuel installé dans la fenêtre contextuelle. -up boîte de dialogue, virtuel Le logiciel du lecteur optique chargera automatiquement le fichier img et l'utilisera comme image disque dans le lecteur optique virtuel Double-cliquez sur l'icône du disque dans le lecteur optique virtuel pour ouvrir le fichier img et accéder à son contenu. etc.

Comment ouvrir le fichier img Comment ouvrir le fichier img Jul 06, 2023 pm 04:17 PM

Comment ouvrir le fichier img : 1. Confirmez le chemin du fichier img ; 2. Utilisez l'ouvre-fichier img ; 3. Sélectionnez la méthode d'ouverture ; 4. Affichez l'image ; Le fichier img est un format de fichier image couramment utilisé, généralement utilisé pour stocker des données d'image.

Quel est le format de l'image ? Quel est le format de l'image ? Mar 17, 2023 am 10:33 AM

img est un format de compression de fichiers, principalement utilisé pour créer des fichiers image de disquette. Il peut être utilisé pour compresser le contenu d'une disquette entière ou d'un CD entier. Des fichiers avec l'extension ".IMG" sont créés en utilisant ce format de fichier. Le fichier img comprend 3 nœuds de base, à savoir "Ehfa_HeaderTag", "Ehfa_File" et "Ehfa_Entry".

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

U disk pe ne peut pas lire img U disk pe ne peut pas lire img Mar 19, 2024 pm 12:07 PM

Le disque U est l'un des périphériques de stockage fréquemment utilisés. Il y aura également quelques problèmes mineurs lors de l'utilisation. Par exemple : le disque U ne peut pas être lu. Comment le résoudre ? Vous n'arrivez pas à lire la clé USB ? 4 étapes pour vous apprendre à résoudre le problème facilement. Une fois la clé USB insérée dans l'ordinateur, cliquez sur le menu Démarrer, sélectionnez Panneau de configuration et rangez-la ! Vous n'arrivez pas à lire la clé USB ? 4 étapes pour vous apprendre à résoudre facilement le problème. Recherchez et double-cliquez sur le Gestionnaire de périphériques dans le Panneau de configuration. Garde le! Vous n'arrivez pas à lire la clé USB ? 4 étapes pour vous apprendre à résoudre facilement le problème : Recherchez le contrôleur Universal Serial Bus sur l'interface principale du Gestionnaire de périphériques et rangez-le ! Vous n'arrivez pas à lire la clé USB ? 4 étapes pour vous apprendre à trouver facilement le périphérique de stockage de masse USB, le sélectionner, faire un clic droit, trouver Désinstaller et ranger le ! Vous n'arrivez pas à lire la clé USB ? 4 étapes pour vous apprendre à résoudre le problème facilement. Bienvenue à laisser un message pour discussion !

Comment changer l'attribut src de img dans jquery Comment changer l'attribut src de img dans jquery Mar 03, 2022 pm 03:41 PM

Comment changer l'attribut img src dans jquery : 1. Utilisez l'attribut attr(), la syntaxe "$("img").attr("src","image file address""); 2. Utilisez la méthode prop(), la syntaxe " $("img").prop("src","L'adresse du fichier image")".

que signifie la balise d'image en HTML que signifie la balise d'image en HTML Mar 04, 2021 pm 02:37 PM

En HTML, la balise image fait référence à la balise utilisée pour définir l'image, c'est-à-dire la balise "<img>". L'élément img peut intégrer une image dans une page Web. La balise "<img>" est utilisée pour créer un espace réservé pour l'image référencée et lier l'image à la page HTML. La balise img utilise l'attribut src pour spécifier l'URL de celle-ci. affichant l'image. Syntaxe "<img src="imageurl">".

Comment gérer la distorsion CSS img Comment gérer la distorsion CSS img Sep 13, 2021 am 11:34 AM

Solution à la distorsion CSS img : 1. Ouvrez le fichier CSS correspondant ; 2. Conservez la longueur et la largeur du contenu de l'élément d'origine en définissant "object-fit:none;".

See all articles