API Cercle

Résolu
Signaler
Messages postés
1236
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010
-
Messages postés
1236
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010
-
voilà je veux dessiner un cercle:



MovieClip.prototype.drawCirle=function(rayon,x,y) {

//Je crée la méthode

var monangle=Math.PI/4;

//il s'agit de calculer l'angle des huit segments, 360°/8= 45°= π/4radians....

var ctrlDist=rayon/Math.cos(monangle/2);

//faut prendre une équerre, un compas...

//ctrl=rechercher-Dist=distance: on calcule la distance du centre aux 12 points

var angle=0;

//on intitialise l'angle

var rx, ry,ax,ay;

//on définit les variables locales

this.moveTo(x+rayon,y);

//premier point

for(var i=0; i<8; i++) {

//on répéte huit fois l'opération = huits segments

angle+= monangle;

//on incrémente l'angle de monangle pour créer le cercle

rx=x+Math.cos(angle-(monangle/2))*(ctrlDist);

//points de contrôle

ry=y+Math.sin(angle(monangle/2))*(ctrlDist);

ax=x+Math.cos(angle)*rayon;

// points terminaux de la courbe

ay=y+Math.sin(angle)*rayon;

this.curveTo(rx,ry,ax,ay);

//on dessine le segment

}

};

var moncercle=this.createEmptyMovieClip("moncercle",1);

//on crée le clip

moncercle.lineStyle(3, 0xFEEBE0, 100);

//on définit ses propriétés

moncercle.drawCircle(80,186,160);//rayon,x,y



Marche pas. pourquoi? Est-ce qu'il manque un truc?

:-(

1 réponse

Messages postés
1236
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010

deux petites erreurs que y'avait...pfff,

voilà le code juste:



MovieClip.prototype.drawCircle = function(rayon, x, y) {

var monangle = Math.PI/4;

var ctrlDist = rayon/Math.cos(monangle/2);

var angle = 0;

var rx, ry, ax, ay;

this.moveTo(x+rayon, y);

for (var i = 0; i<8; i++) {

angle += monangle

rx = x+Math.cos(angle-(monangle/2))*(ctrlDist);

ry = y+Math.sin(angle-(monangle/2))*(ctrlDist);

ax = x+Math.cos(angle)*rayon;

ay = y+Math.sin(angle)*rayon;

this.curveTo(rx, ry, ax, ay);

}

};

var moncercle=this.createEmptyMovieClip("moncercle", 1);

moncercle.lineStyle(3, 0xFEEBE0, 100);

moncercle.drawCircle(80, 186, 160);



A+.

(//)