[FLASH MX2004] Problème d'affichage de traçage (lineto)

Biduleman Messages postés 3 Date d'inscription jeudi 29 janvier 2004 Statut Membre Dernière intervention 21 avril 2006 - 21 mars 2006 à 17:16
Biduleman Messages postés 3 Date d'inscription jeudi 29 janvier 2004 Statut Membre Dernière intervention 21 avril 2006 - 21 avril 2006 à 15:57
Bonjour a tous,
Dans le cadre d'un projet d'école, moi et un pote devions créé un outil servant à comprendre les relations linéaires et quadratiques (parabole). Nous sommes rendu à la quadratique mais, nous avons un problème concernant l'affichage de la quadratique. Nous ne somme pas capable de placer le sommet de la parabole ou nous le souhaiton (au centre lorsque b et c valent 0). Nous uttilisons le lineto pour la tracer, en fesant calculé sur chaque valeur de "x" le bon "y" pour la coordoné du point. Voici une partie du code, le .fla de la quadratique ainsi que la version linéaire de mon "application" pour vous aider a suivre mon raisonement.
Partie du code:
// Créé un MovieClip qui contiendra la droite
_root.createEmptyMovieClip("droite", -7343245635786132);
// Épaisseur(pixel), Couleur(hexa) et Alpha(%)
droite.lineStyle(epaisseur_ligne, couleur_ligne, transparence_ligne);
droite.moveTo(400, 300);
do {
y_1 = (a_modifie*(x*x))+(b*x)+c;
droite.lineTo(x, y_1);
droite.moveTo(x, y_1);
x++;
} while (x<800);
// Créé un MovieClip qui contiendra la droite
_root.createEmptyMovieClip("droite2", -7632178456312332);
// Épaisseur(pixel), Couleur(hexa) et Alpha(%)
droite2.lineStyle(epaisseur_ligne, couleur_ligne, transparence_ligne);
droite2.moveTo(400, 300);
do {
y_2 = (a_modifie*(x2*x2))+(b*x2)+c;
droite2.lineTo(x2, y_2);
droite2.moveTo(x2, y_2);
x2--;
} while (x2>-800);
// -=-=-=-=-=-=-=-DROITE-=-=-=-=-=-=-=
La quadratique(fla):
http://jdhosts.net/webfolio/biduleman/quad_aide.fla


La linéaire (swf et fla)
http://jdhosts.net/webfolio/biduleman/droite_modele.fla
http://jdhosts.net/webfolio/biduleman/droite_modele.swf

4 réponses

shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
21 mars 2006 à 19:35
salut j'ai modifié ainsi

onEnterFrame = function () {
// Variable à définir au départ
origine_x = 400;
origine_y = 300;
grandeur_case = 10;
plus_petit_x = 0-origine_x;
plus_grand_x = 800-origine_x;
epaisseur_ligne = 2;
couleur_ligne = 0x000000;
transparence_ligne = 100;
b = 0;
c = 0;
x = 0;
x2 = 0;
profondeur = 0;
// b = valeur_b*grandeur_case;
// ---------------SLIDER---------------
// Valeur de a (SLIDER)
slider_a_x = _root.slider_a.control._x/3.7;
if (slider_a_x>0) {
a = 0.0007*slider_a_x*slider_a_x;
} else if (slider_a_x<0) {
a = (0.0007*slider_a_x*slider_a_x)*-1;
}
a_etape1 = a*100;
a_etape2 = a_etape1;
a_modifie = a_etape2/100;
// ---------------SLIDER---------------
// -=-=-=-=-=-=-=-DROITE-=-=-=-=-=-=-=-
// Créé un MovieClip qui contiendra la droite
_root.createEmptyMovieClip("droite", -7343245635786132);
// Épaisseur(pixel), Couleur(hexa) et Alpha(%)
droite.lineStyle(epaisseur_ligne, couleur_ligne, transparence_ligne);
droite.moveTo(400, 300);
do {
y_1 = (a_modifie*(x*x))+(b*x)+c;
droite.lineTo(400+x, 300+y_1);
droite.moveTo(400+x, 300+y_1);
x++;
} while (x<800);
// Créé un MovieClip qui contiendra la droite
_root.createEmptyMovieClip("droite2", -7632178456312332);
// Épaisseur(pixel), Couleur(hexa) et Alpha(%)
droite2.lineStyle(epaisseur_ligne, couleur_ligne, transparence_ligne);
droite2.moveTo(400, 300);
do {
y_2 = (a_modifie*(x2*x2))+(b*x2)+c;
droite2.lineTo(400+x2, 300+y_2);
droite2.moveTo(400+x2, 300+y_2);
x2--;
} while (x2>-800);
// -=-=-=-=-=-=-=-DROITE-=-=-=-=-=-=-=-
};

<hr>Venez que je vous vide de votre sang ^^
0
Biduleman Messages postés 3 Date d'inscription jeudi 29 janvier 2004 Statut Membre Dernière intervention 21 avril 2006
22 mars 2006 à 16:34
Merci beaucoup, je vien de tester et sa marche super, merci beaucoup! Mais t'aurais pas une idée du pourquoi des ligne qui apparaisse lorsque le slider est a une grande valeur?(positive ou négative)
0
shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
22 mars 2006 à 21:45
Je sais pas je ne les voit pas chez moi je suis sous flash 8 peut étre ca mais j'ai compiler en 7 et 6 et je ne voit pas ces ligne

<hr>Venez que je vous vide de votre sang ^^
0
Biduleman Messages postés 3 Date d'inscription jeudi 29 janvier 2004 Statut Membre Dernière intervention 21 avril 2006
21 avril 2006 à 15:57
Ok, j'ai un nouveau probleme. La il y a une ligne qui apparait je ne sais pourquoi, et de plus, en comparant notre flash avec un vrai programme tracant des quadratique, la notre est inversé et pas du tout au bon endroit (meme apres un inversion de la parabolle)

Voici les lien vers le nouveau .fla
http://jdhosts.net/webfolio/biduleman/quad_aide2.fla
0
Rejoignez-nous