问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

html5中使用canvas绘制两点弧线箭头

发布网友 发布时间:2022-05-10 21:05

我来回答

2个回答

懂视网 时间:2022-05-12 04:45

这篇文章给大家分享的内容是关于html5 canvas用来绘制弧形的代码实现,有一定的参考价值,有需要的朋友可以从参考一下,希望对你有所帮助。

1.绘制弧形

context.arc(
 centerx, centery, radius,//圆点坐标和半径
 startingAngle,endingAngle,//起始弧度,结束弧度
 anticlockwise = false//默认顺时针
)

startingAngle和endingAngle对应的图

eg:

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>canvas画弧形</title>
</head>

<body>
 <canvas id="canvas">浏览器不支持canvas,请更换浏览器</canvas>
 <script type="text/javascript">
 window.onload = function() {
  var canvas = document.getElementById('canvas');
  canvas.width = 1024;
  canvas.height = 768;
  var context = canvas.getContext('2d');
  // 绘制状态
  context.arc(300, 300, 200, 0, 1.5 * Math.PI);
  context.lineWidth = 5;
  context.strokeStyle = 'blue';
  context.stroke();
 }
 </script>
</body>

</html>

运行结果:

2.beginPath()和closePath()不用成对出现。

beginPath()代表重新规划一个路径;

closePath()代表要结束当前的路径,如果当前路径没封闭,会自动封闭当前路径,如果不想要封闭,则使用beginPath()就好了,不用使用closePath()。

closePath()对fill()不起作用。因为fill()也会自动封闭当前路径,然后填充。

相关文章推荐:

html5 video如何实现实时监测当前播放时间(代码)

H5中画布、拖放事件以及音视频的代码实例

热心网友 时间:2022-05-12 01:53

回答完毕,采纳即可。

<!DOCTYPE HTML>
<html>
<head>
<title>yugi</title>
<meta charset=UTF-8 />
<style type="text/css">
</style>
<script type="text/javascript">
var Eye = function (a, b)
    {
    this.a = a;
    this.b = b;
    }
    Eye.prototype =
    {
        constructor : Eye,
        g : null,
        init : function ()
        {
        var canvas = document.querySelector ("canvas");
        this.g = canvas.getContext ("2d");
        return this;
        },
        drawEyelid : function ()
        {
        var g = this.g, a = this.a, b = this.b, R = 5;
        g.save ();
        g.beginPath ();
        g.fillStyle = "black";
        g.arc (a.x, a.y, R, 0, 2 * Math.PI);
        g.fill ();
        g.restore ();
        g.beginPath ();
        g.fillStyle = "red";
        g.arc (b.x, b.y, R, 0, 2 * Math.PI);
        g.fill ();
        g.restore ();
        g.beginPath ();
        g.strokeStyle = "blue";
        g.moveTo (a.x, a.y);
        g.lineTo (a.x, a.y);
        var r = 300;
        g.arcTo (a.x + r, a.y, b.x, b.y, r);
        g.lineTo (b.x, b.y);
        g.stroke ();
        g.restore ();
        g.beginPath ();
        g.strokeStyle = "pink";
        g.moveTo (b.x, b.y);
        g.lineTo (b.x, b.y);
        g.arcTo (b.x - r, b.y, a.x, a.y, r);
        g.lineTo (a.x, a.y);
        g.stroke ();
        g.restore ();
        g.beginPath ();
        g.fillStyle = "black";
        g.moveTo (b.x, b.y);
        g.lineTo (b.x, b.y - 2 * R);
        g.lineTo (b.x - 2 * R, b.y - 4);
        g.fill ();
        g.restore ();
        g.beginPath ();
        g.moveTo (a.x, a.y);
        g.lineTo (a.x, a.y + 2 * R);
        g.lineTo (a.x + 2 * R, a.y + 4);
        g.fill ();
        g.restore ();
        }
    };
    
    onload = function ()
    {
    var eye = new Eye (
    {
        x : 100,
        y : 50
    },
    {
        x : 550,
        y : 310
    });
    eye.init ().drawEyelid ();
    }
</script>
</head>
<body>
<body>
<canvas width="800" height="600">
你的浏览器不支持canvas标签
</canvas>
</body>
</html>

追问随意更改A,B两点后,箭头方向失效,可否再优化下

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
这是个成本会计题,马上要考这道原题了,求大虾帮忙 财务管理类问题,求大虾帮忙,小弟感激不尽。具体问题看问题补充。_百度... 光影魔术手怎么换底色 光影魔术手换底色教程 ...米的绳子围绕一棵树干饶了6圈,还余下1.16米,这棵树干上的直径大约是... ...还余下1.16米,这棵树的树干的直径大约是多少米?求算式! ibm x3500 M5 服务器 运行时风扇声音好大,吵死了,可以下掉一个吗... IBMX3500 M5,最近老是出现自动关机的情况,需要把服务器电源拔掉半分钟... 治疗萎缩性胃炎的方法 怎么治萎缩胃炎 JYF-40FS06电饭煲190块买的是假的吗 extJs怎么能画光滑曲线 用canvas画贝塞尔曲线,有没有什么可视化的工具 网页上如何在两个点之间画出平滑的曲线html OPPO59怎么把软件通过微信分享给别人 canvas画出贝塞尔曲线的连线走势动画,有没有什么方案 用html canvas绘制曲线后 能否用x坐标获取y坐标? vs里用canvas画曲线图,在其他浏览器一切正常,而在firefox浏览器里:坐标轴能出现,曲线却出不来 如何利用Tkinter中Canvas绘制曲线图,请教高手 canvas 怎么sin函数绘制波浪线 温州有什么特产,机场有卖的,或者机场都有买什么的 独立站怎么做?哪里学习效果好? redmik30pro自动点击屏幕返回键怎么办? 红米充电屏幕失灵乱跳 红米手机触屏乱跳 涅槃决by半池烟云全本txt在线小说免费阅读 主角修炼太清涅槃诀,好像后来得到了五行乾坤鼎。 涅盘诀电子书txt全集下载 我想买一份个人的全保保险月工资三千要买什么保险好 针对个人情况,买什么类型的保险好? 我今年26岁。想买个人保险。不知道买那个好、 java画双曲线 javascript怎么画贝塞尔曲线 国歌数字简谱 《AByteofPython》pdf下载在线阅读,求百度网盘云资源 求国歌简谱 国歌简谱 谁有中国国歌的歌词和简谱??? 安钛克与长城电源哪个好? 国歌的歌词、谱子 长城双卡王500SE跟安钛克VP450P电源哪个好 英国国歌的简谱是什么 电源买安钛克好还是长城好? 请问电脑机箱开机键的线是接在主板上还是接在电源上? 是长城电源好还是安钛克电源好?懂行的回答 组装电脑时,买来的机箱上面的开机和重启按钮怎么与主板连接? 秋刀鱼会过期的爱情意思是什么? 500w电源长城 航嘉 安钛克哪个好 秋刀鱼不会过期是什么意思? 安钛克NeoEco550M和长城智控0噪音700ZN谁值得入手? 电源 安钛克 还是长城好