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 :

Optimisation d'un canvas


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par d�faut Optimisation d'un canvas
    bonjour � tous
    je souhaite afficher dans une page HTML l'�tat de 2 interrupteurs:
    Nom : Inter.jpg
Affichages : 108
Taille : 5,4 Ko
    Pour cela j'ai tent� ce qui suit:
    HTML
    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        <div id="divCanvas1">
            <canvas class="inter" id="inter11"></canvas>
            <br>
            <canvas class="inter"id="inter12"></canvas>
        </div>
        <div id="divCanvas2">
            <canvas class="inter" id="inter21"></canvas>
            <br>
            <canvas class="inter" id="inter22"></canvas>
        </div>
    CSS
    Code css : 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
    #divCanvas1{
      position: absolute;
      border: 1px solid blue;
      top: 200px;
      left: 650px;
    }
    #divCanvas2{
      position: absolute;
      border: 1px solid blue;
      top: 200px;
      left: 700px;
    }
    .inter{
      width: 25px;
      height: 25px;
      margin: 3px;
    }
    #inter11, #inter21{
      border: 1px solid red;
    }
    #inter12, #inter22{
      border: 1px solid green;
    }
    JS
    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
    function chargeEtatInterBase(){
        const i11=document.getElementById("inter11");
        const i12=document.getElementById("inter12");
        const i21=document.getElementById("inter21");
        const i22=document.getElementById("inter22");
        const ctxI11=i11.getContext("2d");
        const ctxI12=i12.getContext("2d");
        const ctxI21=i21.getContext("2d");
        const ctxI22=i22.getContext("2d");
        ctxI11.fillStyle="red";
        ctxI11.fillRect(1,1,300,300);
        ctxI11.font= "100px Arial";
        ctxI11.fillText("ON",50,80);
        ctxI22.fillStyle="green";
        ctxI22.fillRect(1,1,300,300);
        ctxI22.font= "100px Arial";
        ctxI22.fillText("OF",50,80);
    }
    Je ne vois pas appara�tre le texte "ON" "OF".
    Je pense qu'il y a moyen d'am�liorer la chose pour faire plus simple.
    Si quelqu'un pouvait me filer un petit coup de main.
    Merci.

  2. #2
    Membre �clair�
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par d�faut Solution trouv�e
    Bonjour,
    En relisant les infos sur le "canvas" je me suis rendu compte que je n'avais pas compris le fonctionnement. Je crois maintenant avoir cern� le sujet; alors si cela vous int�resse voici ma solution:
    HTML
    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
        <canvas id="inter1" width="35px" height="60px"></canvas>
        <canvas id="inter2" width="35px" height="60px"></canvas>
    CSS
    Code css : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #inter1{
      position: absolute;
      border: 1px solid blue;
      top: 200px;
      left: 700px;
    }
    #inter2{
      position: absolute;
      border: 1px solid blue;
      top: 200px;
      left: 740px;
    }
    JS
    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
    let alt=false;
    const i1=document.getElementById("inter1");
    const i2=document.getElementById("inter2");
    const ctxI1=i1.getContext("2d");
    const ctxI2=i2.getContext("2d");
    function chargeEtatInterBase(){
        ctxI1.fillStyle="green";
        ctxI1.fillRect(5,30,25,25);
        ctxI2.fillStyle="green";
        ctxI2.fillRect(5,30,25,25);
        ctxI1.font = "12px Arial";    
        setInterval(actionInter,500);
    }
    function actionInter(){
        if(alt){
            ctxI1.clearRect(5,30,25,25);
            ctxI1.fillStyle="red";
            ctxI1.fillRect(5,5,25,25);
            ctxI1.fillStyle="black";
            ctxI1.fillText("ON",10,20);
            alt=false;
        }
        else{
            ctxI1.clearRect(5,5,25,25);
            ctxI1.fillStyle="green";
            ctxI1.fillRect(5,30,25,25);
            ctxI1.fillStyle="black";
            ctxI1.fillText("OF",10,47);
            alt=true;
        }
    }
    j'ai fait une petite animation pour montrer le fonctionnement.
    Il y a surement moyen d'am�liorer ce code. Mais cela fonctionne.
    Merci � ceux aux lecteurs.

  3. #3
    Mod�rateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 202
    Par d�faut
    Bonjour,
    Il y a surement moyen d'am�liorer ce code.
    Pourquoi passer par des �l�ments <canvas> quand cela se g�re simplement en HTML-CSS avec plus de souplesse ?

    Mais cela fonctionne.
    c'est ce qui compte avant tout !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Optimisation d'un canvas
    Par Nighthawk dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 25/08/2015, 21h29
  2. Optimisation d'une animation dans canvas de html5
    Par Archim�de dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 05/03/2015, 11h20
  3. Optimisation d'un canvas ?
    Par Anthares dans le forum Windows Presentation Foundation
    R�ponses: 7
    Dernier message: 11/03/2010, 11h12
  4. [Canvas] Optimisation
    Par Gogoye dans le forum 2D
    R�ponses: 4
    Dernier message: 06/11/2004, 12h09
  5. R�ponses: 2
    Dernier message: 17/05/2002, 20h37

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