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

JavaScript Discussion :

Arc canvas animation [API HTML5]


Sujet :

JavaScript

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 15
    Par défaut Arc canvas animation
    Bonjour,
    j'aimerai savoir comment je peux dessiner un cercle d'arcs comme dans l'image ci-joint en utilisant canvas j'ai utilisé quelque solution mais ça fonctionne pas comme je voulais Nom : Capture d’écran 2014-04-12 à 18.34.58.png
Affichages : 319
Taille : 168,1 Ko
    voilà le code que j'ai utilisé et je demande si il y'a une possibilité d'utilisé la librairie paper.js et merci d'avance
    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    <!DOCTYPE HTML>
    <html>
      <head>
        <style>
          body {
            margin: 0px;
            padding: 0px;
          }
    	  #circle{
    	position:absolute;
    	top:30%;
    	left:35%;
    	}
    	 #myCanvas{
    		 position:absolute;
    		 top:0;
    		 left:0;
    		 }
    		 #myCanvas1{
    		 position:absolute;
    		 top:0;
    		 left:8px;
    		 -webkit-transform:rotate(2deg);
    		 -o-transform:rotate(2deg);
    		 -ms-transform:rotate(2deg);
    		 filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
    		 }
    		 #myCanvas2{
    		 position:absolute;
    		 top:0;
    		 left:25px;
    		 -webkit-transform:rotate(20deg);
    		 -o-transform:rotate(20deg);
    		 -ms-transform:rotate(20deg);
    		 filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
    		 }
    	body{
        background:orange;    
    }
     
     
        </style>
      </head>
      <body>
     <div id="cercle">
        <canvas id="myCanvas"  width="330" height="330"></canvas>
        <canvas id="myCanvas1"  width="330" height="330"></canvas>
        <canvas id="myCanvas2"  width="330" height="330"></canvas>
         </div>
       <!--  <div class='hider'>
        <div class="arc"></div>
    </div>
       -->
     
    	 <script>
    var canvas = document.getElementById('myCanvas');
          var context = canvas.getContext('2d');
          var x = canvas.width / 2;
          var y = canvas.height / 2;
          var radius = 133;
          var startAngle = 0.5 * Math.PI;
          var endAngle = 1.5 * Math.PI;
          var counterClockwise = false;
     
    context.beginPath();
    context.arc(x, y, radius, startAngle, endAngle, counterClockwise);
    context.lineWidth = 1;
    context.strokeStyle = '#000';
    context.shadowOffsetX = 0;
    context.shadowOffsetY = 0;
    context.shadowBlur = 10;
    context.shadowColor = '#656565';
    context.stroke();
     
     
    /* -----------------*/	
    var canvas1 = document.getElementById('myCanvas1');
          var context1 = canvas1.getContext('2d');
          var x1 = canvas1.width / 2;
          var y1 = canvas1.height / 2;
          var radius1 = 130;
          var startAngle1 = 0.7 * Math.PI;
          var endAngle1 = 1 * Math.PI;
          var counterClockwise1 = false;
     
    context1.beginPath();
    context1.arc(x1, y1, radius1, startAngle1, endAngle1, counterClockwise1);
    context1.lineWidth = 20;
    context1.strokeStyle = '#FFF';
    context1.shadowOffsetX = 0;
    context1.shadowOffsetY = 0;
    context1.shadowBlur = 10;
    context1.shadowColor = '#656565';
    context1.stroke();
     
     
     
    /* -----------------*/
     var canvas2 = document.getElementById('myCanvas2');
          var context2 = canvas2.getContext('2d');
          var x2 = canvas2.width / 2;
          var y2 = canvas2.height / 2;
          var radius2 = 133;
          var startAngle2 = 0.5 * Math.PI;
          var endAngle2 = 2 * Math.PI;
          var counterClockwise2 = false;
     
    context2.beginPath();
    context2.arc(x2, y2, radius2, startAngle2, endAngle2, counterClockwise2);
    context2.lineWidth = 1;
    context2.strokeStyle = '#000';
    context2.shadowOffsetX = 0;
    context2.shadowOffsetY = 0;
    context2.shadowBlur = 10;
    context2.shadowColor = '#656565';
    context2.stroke();
    /* -----------------*/
        </script>
      </body>
    </html>

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    j'ai du mal à comprendre ce que tu ne comprends pas
    Tout est dans la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    context.arc(x, y, radius, startAngle, endAngle, counterClockwise);
    il te suffit de changer le radius, startAngle et endAngle pour chacun de tes cercles.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 15
    Par défaut
    ça n'a pas fonctionner toujours un petit décalage entre les arcs

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Voici ce que l'on peut obtenir en utilisant le même context/canvas
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!DOCTYPE HTML>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <title>[Canvas]</title>
    </head>
    <body>
      <canvas id="le_canvas" width="600" height="600">Balise &lt;canvas&gt; non prise en compte</canvas>
    <script>
    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
      var oCanvas = document.getElementById('le_canvas');
      if( oCanvas && oCanvas.getContext){
        var colorStyle = ['#89A','#9AB','#ABC','#BCD','#CDE', '#DEF'],
            i, larg = 30,
            nbrInc = colorStyle.length,
            rayon = 100,
            angleFin = 1.5 * Math.PI,
            angleDeb = 1.0 * Math.PI,
            incAngle = Math.PI /nbrInc,
            // get context
            context = oCanvas.getContext('2d'),
            // position centre
            posX = oCanvas.width / 2,
            posY = oCanvas.height / 2;
     
        for( i=0; i < nbrInc; i++){
          context.beginPath();
            // definition style trace
            context.lineWidth = larg;
            context.strokeStyle = colorStyle[i];
            // trace de l'arc
            context.arc( posX, posY, rayon, angleFin, angleDeb, true);
            context.stroke();
            // incrémentation pour prochain
            angleFin += incAngle;
            angleDeb += incAngle;
            rayon += context.lineWidth;
     
          context.beginPath();
            // definition style trace
            context.lineWidth = 1;
            context.strokeStyle = '#000';
            // trace de l'arc
            context.arc( posX, posY, rayon -(larg/2), 0, 2*Math.PI, true);
            context.stroke();
         }
      }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    </script>
    </body>
    </html>

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 15
    Par défaut
    Merci beaucoup je crois que ça répond à ma question pour le moment parce que après je vais faire une animation au clic

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. <canvas> Animation d'une algue
    Par karottes dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 30/09/2013, 20h19
  2. animation avec html canvas
    Par fab13 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/08/2011, 13h39
  3. [HTML 5] Jeux : animation de sprites dans l'élément Canvas grâce à EaselJS
    Par davrous dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 22/07/2011, 16h00
  4. Animation sur un CANVAS
    Par BECHIRXV dans le forum Forms
    Réponses: 1
    Dernier message: 05/04/2008, 17h18

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