2010-08-22 8 views
1

Existe-t-il un moyen avec PHP GD de dessiner une étoile en utilisant imagefilledpolygon?Dessiner une étoile en utilisant imagefilledpolygon (avec diagramme)

Où les points seraient-ils tracés?

je crois qu'il implique sinus et cosinus parce que ...

alt text

Comment puis-je relier ces points au centre utilisant sine et cosine GD?

+0

Où seraient les points de tracer? - C'est en fait une question de maths. Avez-vous eu l'occasion de l'étudier à l'école? –

+0

Oui, ce que je veux vraiment savoir, c'est l'équation mathématique ... –

+0

Bel exemple ici http://www.riccardostecca.net/1/?p=37 – SteakOverflow

Répondre

3

oui. Je vous suggère de lire cette entrée manuelle que vous avez vous-même fournie, car elle vous indique exactement ce que vous devez faire. Il donne même un exemple d'étoile à 3 points, et il y a même un exemple dans les notes d'utilisateur d'une étoile à 5 côtés.

2

Il est facile de calculer les points dont vous avez besoin:

<?php 
function drawStar($img,$x,$y,$radius,$sides,$color,$spikness=0.5) 
{ 
$point =array(); 
$t = 0; 
for($a = 0;$a <= 360;$a += 360/($sides*2)) 
{ 
$t++; 
if($t % 2 == 0) 
{ 
$point[] = $x + ($radius * $spikness) * cos(deg2rad($a)); 
$point[] = $y + ($radius * $spikness) * sin(deg2rad($a)); 
}else{ 
$point[] = $x + $radius * cos(deg2rad($a)); 
$point[] = $y + $radius * sin(deg2rad($a)); 
} 
} 
return imagefilledpolygon($img,$point,$sides*2,$color); 
} 
?>