美文网首页
canvas 画箭头

canvas 画箭头

作者: skoll | 来源:发表于2022-07-08 20:58 被阅读0次

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<canvas id="canvas" width="1000px" height="1000px"></canvas>
<script>
const canvas=document.getElementById('canvas')
const ctx=canvas.getContext('2d')

    // ctx.fillRect(10,10,55,50)
    // ctx.fillStyle='rgba(0,0,200,0.5)'

    // ctx.strokeRect(0,0,50,50)
    // draw(ctx)
    // drawSin()
    // drawWork()

    function draw(ctx){
        ctx.beginPath()
        ctx.moveTo(0,0)
        ctx.lineTo(200,50)
        ctx.closePath()
        ctx.stroke()
    }

    function drawSin(){
        ctx.beginPath()
        ctx.moveTo(0,0)
        ctx.lineTo(100,0)
        ctx.lineTo(0,100)
        ctx.closePath()
        ctx.fill()

        ctx.stroke()
        ctx.scale(0.5,0.5)
    }

    function drawWork(){
        ctx.beginPath()
        ctx.moveTo(19.568918244460175,7.465526336640618)
        ctx.lineTo(1,1)
        ctx.lineTo(19.82291145591323,-4.683815611197273)
        ctx.closePath()
        ctx.fill()
        ctx.stroke()
    }

    var isMove = false;
    //鼠标事件
    var x
    var y
    let img=new Image()
    img.src="./arrow.png"
   


    canvas.onmousedown = function (e) {
         x = e.clientX;
         y = e.clientY;
         isMove = true;


    }
    canvas.onmousemove = function (e) {
        let cx = e.clientX;
        let cy = e.clientY;

        const disX=cx-x
        const disY=-(cy-y)
        if (isMove) {
            ctx.clearRect(0, 0, 1000, 1000)
            ctx.beginPath()
            ctx.moveTo(x, y);
            ctx.lineTo(cx, cy);
            ctx.save()
            ctx.translate(cx, cy);
            const angle=calcAngle(disX,disY)
            console.log(angle)
            ctx.rotate(angle*Math.PI/180)
            ctx.drawImage(img,0,0,30,30)
            ctx.restore()
            ctx.stroke();
            
        }
    }
    

    function calcAngle(x,y){
        return 90-(Math.atan2(y, x) * 180 / Math.PI);
    }

    canvas.onmouseup = function (e) {
        isMove = false;
    }
</script>

</body>
</html>

相关文章

  • canvas 画箭头

    Document const canvas=document....

  • canvas箭头

    原文地址 我们一开始知道的有: 箭头可以在线段开头 也可以在结尾,也可以两端都有。 我们希望指定一个角度θ,见图,...

  • HTML5中canvas使用

    1、Canvas基础 2、Canvas画直线 3、Canvas画矩形 4、Canvas画文字 5、Canvas画圆...

  • uni 小程序 canvas截图保存到本地

    canvas 生产图片,保存到本地功能。 canvas 组件 js 画canvas js

  • Tikz:好看的箭头

    说明:用Tikz中画带箭头的线时,只用[->]画的箭头太难了!推荐使用:[-latex]

  • canvas基础学习笔记

    学习目标 1.canvas画线 2.canvas画矩形 3.canvas写字 4.canvas画圆 5.canva...

  • 圆形头像

    HTML: // canvas画海报var loading;funct...

  • 视觉笔记,你只学会用箭头吗?

    一起学视觉笔记的伙伴说,学了视觉笔记,现在只会画箭头、箭头、箭头! 是的,箭头很重要,用箭头画视觉笔记是最容易上手...

  • Android 绘制圆弧(1)

    说道画图canvas是一定少不了的** 下面是Canvas类常用的方法: 画线 画点 画textview 画椭圆 ...

  • canvas画椭圆

    摘自文章Canvas画椭圆的方法[http://www.alloyteam.com/2015/07/canvas-...

网友评论

      本文标题:canvas 画箭头

      本文链接:https://www.haomeiwen.com/subject/bpuxbrtx.html