<small id='HLT4d'></small><noframes id='HLT4d'>

  • <legend id='HLT4d'><style id='HLT4d'><dir id='HLT4d'><q id='HLT4d'></q></dir></style></legend>

    <tfoot id='HLT4d'></tfoot>
      <i id='HLT4d'><tr id='HLT4d'><dt id='HLT4d'><q id='HLT4d'><span id='HLT4d'><b id='HLT4d'><form id='HLT4d'><ins id='HLT4d'></ins><ul id='HLT4d'></ul><sub id='HLT4d'></sub></form><legend id='HLT4d'></legend><bdo id='HLT4d'><pre id='HLT4d'><center id='HLT4d'></center></pre></bdo></b><th id='HLT4d'></th></span></q></dt></tr></i><div id='HLT4d'><tfoot id='HLT4d'></tfoot><dl id='HLT4d'><fieldset id='HLT4d'></fieldset></dl></div>
          <bdo id='HLT4d'></bdo><ul id='HLT4d'></ul>

        HTML Canvas - 绘制曲线箭头

        时间:2023-06-20

          <small id='VkAzl'></small><noframes id='VkAzl'>

            <bdo id='VkAzl'></bdo><ul id='VkAzl'></ul>

                <tbody id='VkAzl'></tbody>

              1. <legend id='VkAzl'><style id='VkAzl'><dir id='VkAzl'><q id='VkAzl'></q></dir></style></legend>
                1. <tfoot id='VkAzl'></tfoot>
                  <i id='VkAzl'><tr id='VkAzl'><dt id='VkAzl'><q id='VkAzl'><span id='VkAzl'><b id='VkAzl'><form id='VkAzl'><ins id='VkAzl'></ins><ul id='VkAzl'></ul><sub id='VkAzl'></sub></form><legend id='VkAzl'></legend><bdo id='VkAzl'><pre id='VkAzl'><center id='VkAzl'></center></pre></bdo></b><th id='VkAzl'></th></span></q></dt></tr></i><div id='VkAzl'><tfoot id='VkAzl'></tfoot><dl id='VkAzl'><fieldset id='VkAzl'></fieldset></dl></div>

                  本文介绍了HTML Canvas - 绘制曲线箭头的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在尝试在 html 画布中绘制弯曲的箭头.我画一条曲线没有问题,但我不知道如何将 > 放在线的末尾(方向).

                  I'm trying to draw curved arrows in a html canvas. I have no problem to draw a curved line but I don't know how to put the > at the end of the line (direction).

                  ctx.beginPath();
                    ctx.fillStyle = "rgba(55, 217, 56,"+ opacity +")";
                    ctx.moveTo(this.fromX,this.fromY);
                    ctx.quadraticCurveTo(this.controlX, this.controlY, this.toX, this.toY);
                  ctx.stroke();
                  

                  我的想法是在最后的线的一小部分画一个三角形.如何获取直线中点的坐标?

                  My idea is taking a small part of the line at the end and draw a triangle. How can I get the coordinate of a point in the line?

                  下面是图片以便更好地理解.

                  Below is the image for better understanding.

                  推荐答案

                  由于您使用的是二次曲线,因此您知道两个点组成一条指向箭头方向"的直线:

                  Since you're using a quadratic curve, you know two points that make a line that points in the "direction" of your arrow head:

                  所以扔掉一点三角,你自己就有了解决方案.这是一个通用的函数,可以为你做这件事:

                  So throw down a smidge of trig and you have yourself a solution. Here's a generalized function that will do it for you:

                  http://jsfiddle.net/SguzM/

                  function drawArrowhead(locx, locy, angle, sizex, sizey) {
                      var hx = sizex / 2;
                      var hy = sizey / 2;
                  
                      ctx.translate((locx ), (locy));
                      ctx.rotate(angle);
                      ctx.translate(-hx,-hy);
                  
                      ctx.beginPath();
                      ctx.moveTo(0,0);
                      ctx.lineTo(0,1*sizey);    
                      ctx.lineTo(1*sizex,1*hy);
                      ctx.closePath();
                      ctx.fill();
                  
                      ctx.translate(hx,hy);
                      ctx.rotate(-angle);
                      ctx.translate(-locx,-locy);
                  }        
                  
                  // returns radians
                  function findAngle(sx, sy, ex, ey) {
                      // make sx and sy at the zero point
                      return Math.atan2((ey - sy), (ex - sx));
                  }
                  

                  这篇关于HTML Canvas - 绘制曲线箭头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:在 HTML5 Canvas 上绘制多个圆圈的问题 下一篇:向 requestAnimationFrame 回调的函数添加附加参数

                  相关文章

                  1. <small id='2FXU9'></small><noframes id='2FXU9'>

                      <bdo id='2FXU9'></bdo><ul id='2FXU9'></ul>
                  2. <i id='2FXU9'><tr id='2FXU9'><dt id='2FXU9'><q id='2FXU9'><span id='2FXU9'><b id='2FXU9'><form id='2FXU9'><ins id='2FXU9'></ins><ul id='2FXU9'></ul><sub id='2FXU9'></sub></form><legend id='2FXU9'></legend><bdo id='2FXU9'><pre id='2FXU9'><center id='2FXU9'></center></pre></bdo></b><th id='2FXU9'></th></span></q></dt></tr></i><div id='2FXU9'><tfoot id='2FXU9'></tfoot><dl id='2FXU9'><fieldset id='2FXU9'></fieldset></dl></div>

                  3. <legend id='2FXU9'><style id='2FXU9'><dir id='2FXU9'><q id='2FXU9'></q></dir></style></legend>

                      <tfoot id='2FXU9'></tfoot>