IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

Faire suivre une ellipse prédéfinie à un clip


Sujet :

ActionScript 3

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Faire suivre une ellipse prédéfinie à un clip
    Bonjour, bonsoir,
    Je suis nouveau sur le forum comme sur flash donc je risque de manquer de vocabulaire et de poser des questions hautement stupides, mais j'ai besoin d'un peu d'aide.
    J'essaie de créer une interpolation de mouvement assez précise le long d'une ellipse que je souhaite dessiner en actionscript. (soit avec les coordonnées x,y des points soit avec graphics.drawEllipse)
    Et j'essaie de faire suivre à un cercle le bord de cette ellipse, cependant je n'ai encore pas réussi, et je me perds un peu dans des tutos qui n'apporte aucune solution à mes difficultés..

    De l'aide serait la bienvenue même si j'ai conscience que mes explications doivent être assez vague et peu rigoureuse ....

  2. #2
    Membre actif Avatar de gustave02
    Homme Profil pro
    aucune
    Inscrit en
    Février 2013
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Février 2013
    Messages : 162
    Points : 225
    Points
    225
    Par défaut
    bonjour
    voila un code en as3 qui doit répondre a ta demande.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    import flash.events.Event;
     
    var box:Shape = new Shape();
    box.graphics.beginFill(0xFF0000);
    box.graphics.drawRect(0, 0, 50, 50);
    box.graphics.endFill();
    addChild(box);
    var angle:Number = 0;
    var centerX:Number = stage.stageWidth/2 - (box.width/2);
    var centerY:Number = stage.stageHeight/2 - (box.height/2)
    var radiusX:Number = 200;
    var radiusY:Number = 100;
    var speed:Number = .1;
    stage.addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
     
    function loop(evt:Event):void
    {
        box.x = centerX + Math.sin(angle) * radiusX;
        box.y = centerY + Math.cos(angle) * radiusY;
        angle += speed;
    }
    un copier coller et tu exporte tu auras un carré rouge qui suit le tracé d'une ellipse.


    j’espère que ça va t'aider dans ton projet.

    @+ gustave02

  3. #3
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    Salut.
    j'avais essayé de faire ça, ci-joint mon essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    package
    {
    	import flash.display.Shape;
    	import flash.display.Sprite;
    	import flash.events.Event;
    	import flash.geom.Point;
     
    	public class Main extends Sprite
    	{
    		private var a:Number; //demi grand axe
    		private var b:Number; //demi petit axe
    		private var theta:int;
    		private var l:Number;
    		private var h:Number;
    		private var O:Point;
    		private var R:Number;
    		private var oldM:Point;
    		private const degtorad:Number = Math.PI / 180;
    		private var roue:Shape = new Shape();
     
    		public function Main():void
    		{
    			if (stage)
    				init();
    			else
    				addEventListener(Event.ADDED_TO_STAGE, init);
    		}
     
    		private function init(e:Event = null):void
    		{
    			removeEventListener(Event.ADDED_TO_STAGE, init);
    			l = stage.stageWidth;
    			h = stage.stageHeight;
     
    			a = l / 4;
    			b = h / 4;
    			O = new Point(2 * a, 2 * b);
    			R = l / 30;
    			oldM = new Point(O.x + a + R, 0);
    			with (graphics)
    			{
    				lineStyle(3, 0);
    				drawEllipse(O.x - a, O.y - b, 2 * a, 2 * b);
    			}
     
    			with (roue.graphics)
    			{
    				lineStyle(3, 0);
    				drawCircle(0, 0, R);
    				lineStyle(2, 0);
    				moveTo(-R, 0);
    				lineTo(R, 0);
    				moveTo(0, -R);
    				lineTo(0, R);
    			}
    			addChild(roue);
    			stage.addEventListener(Event.ENTER_FRAME, contourner);
    		}
     
    		private function contourner(e:Event):void
    		{
    			var M:Point;
    			var dl:Number;
     
    			theta++;
    			M = new Point(O.x + (a + R) * Math.cos(theta * degtorad), O.y + (b + R) * Math.sin(theta * degtorad));
    			dl = Math.sqrt((M.x - oldM.x) * (M.x - oldM.x) + (M.y - oldM.y) * (M.y - oldM.y));
    			roue.x = M.x;
    			roue.y = M.y;
    			roue.rotationZ += dl / (R * degtorad);
    			oldM = M;
    		}
     
    	}
     
    }
    C'est fait avec flashdev.
    Ici, c'est une roue qui tourne autour d'une ellipse sur le contour

    a+
    Fichiers attachés Fichiers attachés

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour vos deux réponses, c'est exactement ce qu'il me fallait. Je comprend même un peu mieux ce que je bidouille avec Flash

    A partir de là, je devrais être capable de me débrouiller pour finir la modélisation, merci encore !

Discussions similaires

  1. Faire suivre une variable avec des espaces
    Par jonathan34 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 14/02/2008, 20h57
  2. [HTML] Besoin d'aide HTML pour faire suivre une requête
    Par desolation dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 19/07/2007, 10h26
  3. [JMeter]Comment faire suivre une variable ?
    Par cobios dans le forum Outils
    Réponses: 2
    Dernier message: 15/06/2007, 14h57
  4. [Mail] faire suivre une url
    Par veulemans dans le forum Langage
    Réponses: 3
    Dernier message: 22/05/2006, 17h15
  5. Réponses: 1
    Dernier message: 06/04/2006, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo