Maison > interface Web > Tutoriel H5 > Comment utiliser HTML5 Canvas pour dessiner des lignes telles que des lignes droites ou des polylines_html5 compétences du didacticiel

Comment utiliser HTML5 Canvas pour dessiner des lignes telles que des lignes droites ou des polylines_html5 compétences du didacticiel

WBOY
Libérer: 2016-05-16 15:51:48
original
1764 Les gens l'ont consulté

Explication des concepts de base de HTML5 Canvas
html5, cela ne devrait nécessiter aucune introduction, car tout développeur devrait le connaître. HTML5 est une norme technologique Web « émergente ». Actuellement, à l'exception d'IE8 et des versions antérieures, presque tous les navigateurs grand public (FireFox, Chrome, Opera, Safari, IE9) ont commencé à prendre en charge HTML5. En outre, sur le marché des navigateurs mobiles, de nombreux navigateurs mobiles ont également lancé une course aux armements concernant « les capacités et les performances de prise en charge HTML5 ». En tant que norme révolutionnaire de la technologie Web, HTML, associé au fort soutien de nombreux fabricants ou organisations de navigateurs, il est concevable que HTML5 devienne le leader de la technologie Web à l'avenir.

html5, dit « émergent », n’est en réalité pas nouveau du tout. Après tout, la première version officielle de HTML5 a été annoncée dès 2008. Depuis 2008, cela fait maintenant un bon bout de temps. Cependant, jusqu'à présent, pour la plupart des développeurs, c'est encore "un gros tonnerre mais peu de pluie" - de nombreuses personnes entendent parler de HTML5, mais très peu l'utilisent réellement.

Comme nous le savons tous, de nombreuses nouvelles fonctionnalités ont été ajoutées à HTML5. Parmi les nombreuses fonctionnalités de HTML5, Canvas doit être considérée comme l’une des nouvelles fonctionnalités les plus accrocheuses. Nous utilisons l'objet Canvas de HTML5 pour dessiner des graphiques directement sur la page Web du navigateur. Cela signifie que le navigateur peut afficher des graphiques ou des animations directement sur la page Web sans plug-ins tiers tels que Flash.

Maintenant, présentons aux débutants en HTML5 comment utiliser HTML5 Canvas pour dessiner des graphiques de base.

Tout d’abord, nous devons préparer le code HTML de base suivant :

Code XML/HTMLCopier le contenu dans le presse-papiers
  1. >
  2. <html>
  3. <tête>
  4. <méta charset="UTF- 8"> 
  5. titre> tête>
  6. <corps>
  7. corps
  8. >
  9. html>
  10. Le code ci-dessus est un modèle de code de base pour une page html5. Parmi eux, la première ligne de code est une instruction de balise de type de document, qui est également l'instruction de type de document standard pour les pages html5. Elle est utilisée pour indiquer au navigateur "Ceci est une page html5. Veuillez analyser et. affichez-la selon les standards des pages web html5." cette page". La quatrième ligne de code est utilisée pour indiquer au navigateur "le codage des caractères de cette page html5 est UTF-8". pages Web. Ceci est différent des instructions précédentes de codage de caractères HTML. Code XML/HTML
  11. Copier le contenu dans le presse-papiers

  1. <méta
  2. http-equiv
  3. =" Type de contenu" content="text/html;charset=UTF-8">

    Maintenant, nous allons expliquer l'exemple de graphiques de dessin Canvas dans le fichier html contenant le code ci-dessus. Tout d’abord, nous ajoutons la balise canvas suivante à la partie corps du code html ci-dessus.

    Code XML/HTMLCopier le contenu dans le presse-papiers
    1. >
    2. <html>
    3. <tête>
    4. <méta charset="UTF- 8"> 
    5. titre> tête>
    6. <corps>
    7. <toile
    8. id
    9. ="myCanvas" largeur="400px" hauteur="300px" style="bordure : 1px rouge uni ;"> Votre navigateur ne prend pas en charge la balise canvas.
    10. toile
    11. >
    12. corps
    13. >
    14. html>
    15. À ce stade, si nous utilisons un navigateur prenant en charge HTML5 pour ouvrir la page, nous verrons le contenu suivant :
      2016314110155998.png (455×321)

      En HTML5, la balise canvas elle-même n'a aucun comportement, elle occupe simplement une taille spécifiée d'espace vide sur la page. La balise canvas est équivalente à un canevas vierge. Nous devons également utiliser l'API canevas fournie par JavaScript pour écrire le code correspondant afin de dessiner les graphiques souhaités sur ce canevas.

      Remarque : le contenu du texte dans la balise canvas sera affiché dans les navigateurs qui ne prennent pas en charge HTML5. Comme le montre le code HTML ci-dessus, si votre navigateur ne prend pas en charge la balise canevas de HTML5, le texte « Votre navigateur ne prend pas en charge la balise canevas » s'affichera au niveau de la balise canevas.
      En tant que « peintres », nous devons d'abord nous familiariser avec le pinceau entre nos mains, qui est l'objet Canvas en JavaScript et son contenu associé.

      En HTML5, une balise canvas correspond à un objet Canvas. On peut utiliser des fonctions classiques telles que document.getElementById() en JavaScript pour obtenir l'objet. Il convient de noter qu'en JavaScript, nous n'exploitons pas directement l'objet Canvas, mais obtenons l'objet de contexte de dessin graphique correspondant CanvasRenderingContext2D via l'objet Canvas, puis nous utilisons les nombreuses fonctions de dessin graphique fournies avec l'objet CanvasRenderingContext2D pour dessiner.

      C'est comme si chaque toile correspondait à un pinceau. Si on veut dessiner sur la toile, il faut d'abord se procurer le pinceau correspondant, puis utiliser ce pinceau pour dessiner sur la toile. L'objet CanvasRenderingContext2D est équivalent à ce pinceau. Essayons maintenant d'obtenir ce pinceau en JavaScript.

      Code XML/HTMLCopier le contenu dans le presse-papiers
      1. >
      2. <html>
      3. <tête>
      4. <méta charset="UTF- 8"> 
      5. <titre>Exemple de mise en route de dessin au trait HTML5 sur toile< / titre>
      6. tête>
      7. <corps>
      8. <toile id="myCanvas" largeur="400px" hauteur="300px" style="bordure : 1px rouge uni ;">
      9. Votre navigateur ne prend pas en charge la balise canvas.
      10. toile>
      11. <script type="texte/ javascript">
      12. //Récupérer l'objet Canvas (canvas)
      13. var canvas = document.getElementById("myCanvas");
      14. //Détectez simplement si le navigateur actuel prend en charge l'objet Canvas pour éviter de provoquer des erreurs de syntaxe dans certains navigateurs qui ne prennent pas en charge html5
      15. if(canvas.getContext){
      16. //Obtenir l'objet CanvasRenderingContext2D (pinceau) correspondant
      17. var
      18. ctx = canvas.getContext("2d"); }
      19. script> corps> html>

        Comme le montre le code ci-dessus, nous pouvons utiliser la méthode getContext() de l'objet Canvas pour obtenir l'objet CanvasRenderingContext2D. Les lecteurs plus attentifs auraient dû le remarquer : la méthode getContext() doit passer une chaîne - 2d, et le nom de l'objet CanvasRenderingContext2D obtenu contient également 2D. En effet, actuellement HTML5 ne prend en charge que le dessin 2D, mais la 3D ou d'autres formes de dessin pourraient également être prises en charge dans le futur HTML5. À ce moment-là, nous devrons peut-être utiliser getContext("3d") pour obtenir l'objet CanvasRenderingContext3D et dessiner des graphiques 3D.

        Utilisez le canevas html5 pour tracer des lignes (lignes droites, polylignes, etc.)
        Les principales propriétés et méthodes de l'objet CanvasRenderingContext2D requises pour dessiner des lignes droites à l'aide du canevas html5 (ceux avec "() " sont des méthodes) sont les suivantes :

        属性或方法 基本描述
        strokeStyle 用于设置画笔绘制路径的颜色、渐变和模式。该属性的值可以是一个表示css颜色值的字符串。如果你的绘制需求比较复杂,该属性的值还可以是一个CanvasGradient对象或者CanvasPattern对象
        globalAlpha 定义绘制内容的透明度,取值在0.0(完全透明)和1.0(完全不透明)之间,默认值为1.0。
        lineWidth 定义绘制线条的宽度。默认值是1.0,并且这个属性必须大于0.0。较宽的线条在路径上居中,每边各有线条宽的一半。
        lineCap 指定线条两端的线帽如何绘制。合法的值是 "butt"、"round"和"square"。默认值是"butt"。
        beginPath() 开始一个新的绘制路径。每次绘制新的路径之前记得调用该方法。它将重置内存中现有的路径。
        moveTo(int x, int y) 移动画笔到指定的坐标点(x,y),该点就是新的子路径的起始点
        lineTo(int x, int y) 使用直线连接当前端点和指定的坐标点(x,y)
        stroke(int x, int y) 沿着绘制路径的坐标点顺序绘制直线
        closePath() 如果当前的绘制路径是打开的,则关闭掉该绘制路径。此外,调用该方法时,它会尝试用直线连接当前端点与起始端点来关闭路径,但如果图形已经关闭(比如先调用了stroke())或者只有一个点,它会什么都不做。

        Dans le processus de dessin graphique Canvas, nous définissons presque toujours quelques points de coordonnées dans un certain ordre, ce que l'on appelle le chemin de dessin, puis connectons ces points de coordonnées d'une manière spécifiée en fonction de nos besoins. la forme dont nous avons besoin. Après avoir compris l'API ci-dessus de l'objet CanvasRenderingContext2D, tracer des lignes devient très simple.

        Utilisez la toile pour tracer des lignes droites de base

        Maintenant, nous utilisons une toile pour tracer les lignes droites les plus élémentaires.

        Code JavaScriptCopier le contenu dans le presse-papiers
        1. "UTF-8">
        2. Exemple de mise en route d'une ligne de dessin sur toile HTML5
        3. "myCanvas" width=
        4. "400px" height="300px" style="bordure : 1px rouge uni ;"> Votre navigateur ne prend pas en charge la balise canvas.
        5. L'effet d'affichage est le suivant :
          2016314110545325.png (473×319)

          Utilisez la toile pour tracer des lignes droites colorées

          Comme nous le savons tous, dans le monde réel, les pinceaux sont également divers et ont des couleurs variées. De même, l’objet Canvas Brush CanvasRenderingContext2D peut également avoir différentes couleurs dont vous avez besoin. Dans l'exemple de code ci-dessus, si nous ne spécifions pas de couleur, le pinceau Canvas utilise par défaut le noir le plus courant.

          Maintenant, nous utilisons à nouveau le pinceau Canvas pour tracer une ligne droite bleue (en fonction de la simplicité de la page, seul le code JavaScript clé est donné ci-dessous, veuillez également vous référer à l'exemple de code complet ci-dessus).

          Code XML/HTMLCopier le contenu dans le presse-papiers
          1. >
          2. <html>
          3. <tête>
          4. <méta charset="UTF- 8"> 
          5. <titre>Exemple de mise en route de dessin au trait HTML5 sur toile< / titre>
          6. tête>
          7. <corps>
          8. <toile id="myCanvas" largeur="400px" hauteur="300px" style="bordure : 1px rouge uni ;">
          9. Votre navigateur ne prend pas en charge la balise canvas.
          10. toile>
          11. <script type="texte/ javascript">
          12. //Récupérer l'objet Canvas (canvas)
          13. var canvas = document.getElementById("myCanvas");
          14. //Détectez simplement si le navigateur actuel prend en charge l'objet Canvas pour éviter de provoquer des erreurs de syntaxe dans certains navigateurs qui ne prennent pas en charge html5
          15. if(canvas.getContext){
          16. //Obtenir l'objet CanvasRenderingContext2D (pinceau) correspondant
          17. var
          18. ctx = canvas.getContext("2d");  
          19. //Démarrer un nouveau chemin de dessin
          20. ctx.beginPath();
          21. //Définissez les coordonnées du point de départ de la ligne droite comme (10,10)
          22. ctx.moveTo(10, 10);
          23. //Définissez les coordonnées du point final de la ligne droite comme (50,10)
          24. ctx.lineTo(50, 10);
          25. // Tracez une ligne droite le long du chemin dans l'ordre des points de coordonnées
          26. ctx.AVC();
          27. //Ferme le chemin de dessin actuel
          28. ctx.closePath();
          29. //Trace une ligne droite avec de la couleur
          30. ctx.moveTo(10, 30);
          31. ctx.lineTo(50, 30);
          32. //Prend en charge diverses expressions de valeurs de couleur CSS, telles que : "blue", "#0000ff", "#00f", "rgb(0,0,255)", "rgba(0,0,255, 1 )"
          33. // Divers paramètres tels que la couleur doivent être appelés avant la fonction de dessin finale Stroke()
          34.  
          35. ctx.StrokeStyle
          36. = "bleu" ctx.AVC();
          37. //Ferme le chemin de dessin actuel
          38. ctx.closePath();
          39. }
          40. script> corps> html> L'effet d'affichage correspondant est le suivant :


          Utilisez le canevas pour dessiner des polylignes de base2016314110709116.png (433×316)

          Une fois que nous maîtriserons le dessin de lignes droites avec Canvas, il sera beaucoup plus facile de dessiner des polylignes et d'autres formes de lignes. Il nous suffit de tracer quelques points intermédiaires supplémentaires et de les relier tour à tour.

          Code JavaScript

          Copier le contenu dans le presse-papiers
          1. 對應的顯示效果如下圖:
            2016314110738804.png (424×315)

            掌握上述內容後,相信大家對使用Canvas繪製線條有一些基本的了解了吧。由於線條的寬度、透明度等控制只是設定單一屬性即可,請參考上面的相關API,這裡就不再贅述了。

            強烈注意:在繪製圖形路徑時,一定要先呼叫beginPath()。 beginPath()方法將會清空記憶體中先前的繪製路徑資訊。如果不這樣做,對於繪製單個圖形可能沒什麼影響,但是在繪製多個圖形時(例如上面示例的兩條直線),將會導致路徑繪製或者顏色填充等操作出現任何意料之外的結果。
            此外,對於closePath()方法,初學者一定要稍加註意,尤其是上面API表格中closePath()方法描述中的紅色文字。在上面繪製折線的程式碼範例中,我們先呼叫了stroke(),然後再呼叫了closePath()。其實在呼叫stroke()方法時,折線就已經繪製好了,當前的繪製路徑也就被關閉掉了,所以再調用closePath()方法時,它就不會使用直線連接當前端點和起始端點(也就是說,這裡的closePath()是可有可無的,不過為了保持良好的習慣,還是建議寫上)。如果我們交換一下stroke()和closePath()的呼叫順序,則情況完全不一樣了。由於closePath()先調用,此時繪製路徑並沒有關閉,那麼closePath()將會以直線連接目前端點和起始端點。

            交換stroke()和closePath()呼叫順序後的範例程式碼如下:

            交換呼叫順序後,對應的顯示效果如下:
            2016314110800427.png (433×314) 

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal