H5实现绘制三角形并在其三个顶点画三个圆添加点击事件

1.效果如下:

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <canvas id="canvas"></canvas>
    </body>
    <script type="text/javascript">
        //获取canvas容器
        var can = document.getElementById(‘canvas‘);
        //创建一个画布
        var ctx = can.getContext(‘2d‘);
        //绘制三角形(x1,x2)、(x2,y2) (x3,y3)表示三角形三个点坐标,color表示颜色,type表示绘制类型(填充fill和不填充stroke)
        var draw = function(x1, y1, x2, y2, x3, y3, color, type) {
            ctx.beginPath();
            ctx.moveTo(x1, y1);
            ctx.lineTo(x2, y2);
            ctx.lineTo(x3, y3);
            ctx[type + ‘Style‘] = color;
            ctx.closePath();
            ctx[type]();
        }
        draw(100,100,175,20,280,100,‘green‘,‘stroke‘)
        //绘制圆形(x,y)圆心坐标,r表示半径,start表示起始角度,end表示结束角度,color表示颜色,type表示绘制类型(填充fill和不填充stroke)
        var draw = function(x, y, r, start, end, color, type) {
            var unit = Math.PI / 180;
            ctx.beginPath();
            ctx.arc(x, y, r, start * unit, end * unit);
            ctx[type + ‘Style‘] = color;
            ctx.closePath();
            ctx[type]();
        }
        draw(175,20,20,0,360,‘yellow‘,‘fill‘)

        var draw = function(x, y, r, start, end, color, type) {
            var unit = Math.PI / 180;
            ctx.beginPath();
            ctx.arc(x, y, r, start * unit, end * unit);
            ctx[type + ‘Style‘] = color;
            ctx.closePath();
            ctx[type]();
        }
        draw(100,100,20,0,360,‘yellow‘,‘fill‘)

        var draw = function(x, y, r, start, end, color, type) {
            var unit = Math.PI / 180;
            ctx.beginPath();
            ctx.arc(x, y, r, start * unit, end * unit);
            ctx[type + ‘Style‘] = color;
            ctx.closePath();
            ctx[type]();
        }
        draw(280,100,20,0,360,‘yellow‘,‘fill‘)

        can.onclick=function(e){
            //获取鼠标位置
            var x=e.clientX-can.offsetLeft;
            var y=e.clientY-can.offsetTop;
            //通过圆心判断鼠标是否在圆的范围内
            if(x>=80&&x<=120&&y>=80&&y<=120)
            {
                window.open(‘https://www.baidu.com‘);
            }
        }
    </script>
</html>

2.补充:用border画三角形,其效果如下:

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <style>
        .circle {
            width: 50px;
            height: 50px;
            border-radius: 150px;
            position: absolute;
            left: 230px;
            top:80px;
            background: yellow;
        }

        .circle1 {
            width: 50px;
            height: 50px;
            border-radius: 150px;
            position: absolute;
            left: 180px;
            top:220px;
            background: yellow;
        }

        .circle2 {
            width: 50px;
            height: 50px;
            border-radius: 150px;
            position: absolute;
            left: 380px;
            top:220px;
            background: yellow;

        }

        .triangle {
            width: 0;
            height: 0;
            border-bottom: 150px solid red;
            border-right: 150px solid transparent;
            border-left: 50px solid transparent;
            margin-left: 200px;
            margin-top: 100px;
        }
    </style>
    <body>
        <div class="triangle">
        <div class="circle"></div>
        <div class="circle1"></div>
        <div class="circle2"></div>
        </div>
    </body>
</html>

原文地址:https://www.cnblogs.com/Hero-Bin/p/11865892.html

时间: 2024-09-30 00:03:42

H5实现绘制三角形并在其三个顶点画三个圆添加点击事件的相关文章

WebGL入门教程(二)-webgl绘制三角形

前面已经介绍过了webgl,WebGL入门教程(一)-初识webgl(http://www.cnblogs.com/bsman/p/6128447.html),也知道了如何绘制一个点,接下来就用webgl画出一个三角形. 效果图: 在WebGL入门教程(一)-初识webgl中,知道如何绘制一个点 //绘制一个点 gl.drawArrays(gl.POINTS, 0, 1); 但是图形是有多个点组成,那么就应该考虑如何绘制多个点,WebGL提供了一种很方便的机制,缓冲区对象(buffer obje

纯CCS绘制三角形箭头图案

用CSS绘制三角形箭头.使用纯CSS,你只需要很少的代码就可以创作出各种浏览器都兼容的三角形箭头! CSS代码: /* create an arrow that points up */ div.arrow-up { width: 0; height: 0; border-left: 5px solid transparent; /* left arrow slant */ border-right: 5px solid transparent; /* right arrow slant */

绘制三角形矩形

/**绘制三角形*/ CGContextRef contextRef=UIGraphicsGetCurrentContext(); CGContextMoveToPoint(contextRef, 100, 100); CGContextAddLineToPoint(contextRef, 100, 200); CGContextAddLineToPoint(contextRef, 200, 200); CGContextMoveToPoint(contextRef, 100, 100); CG

Android OpenGL入门示例:绘制三角形和正方形 (附完整源码)

Android上对OpenGl的支持是无缝的,所以才有众多3D效果如此逼真的游戏,在Camera的一些流程中也有用到GLSurfaceView的情况.本文记录OpenGL在Android上的入门级示例,绘制一个三角形和正方形.尽管功能简单,可是我捣腾了好几个晚上,大量网上文章上的代码都有点问题,不是绘制不出来就是挂了. 第一个文件:MainActivity.java package com.example.learnopengl1; import android.opengl.GLSurface

纯CSS绘制三角形

使用CSS绘制三角形 正三角形的绘制: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>正三角形</title> 6 <style type="text/css"> 7 #triangle-up { 8 width: 0; 9 height: 0; 10

Quartz2D-contex绘制三角形

//获取上下文 CGContextRef context =UIGraphicsGetCurrentContext(); //线条加粗 CGContextSetLineWidth(context , 5); //设置背景颜色    [[UIColor grayColor]set];    UIRectFill([self bounds]);    //利用path进行绘制三角形    //标记    CGContextBeginPath(context);    //设置起点    CGCont

利用Quartz2D-contex绘制三角形

//获取上下文 CGContextRef context =UIGraphicsGetCurrentContext(); //线条加粗 CGContextSetLineWidth(context , 5); //设置背景颜色    [[UIColor grayColor]set];    UIRectFill([self bounds]);    //利用path进行绘制三角形    //标记    CGContextBeginPath(context);    //设置起点    CGCont

css绘制三角形

今天看到人家用css画了一个三角形,简简单单几行代码,惊讶css其实还有很多我们不知道的东西. 三角形其实还是可以用在很多地方的.其实就那么几行代码直接贴上: div.arrow-up {     width: 0;     height: 0;     border-left: 50px solid transparent;     border-right: 50px solid transparent;     border-bottom: 50px solid #2f2f2f;     

css绘制三角形原理

1.新建一个元素,将它的宽高都设置为0:然后通过设置border属性来实现三角形效果,下面是css绘制三角形的原理: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> .caret{ height:0;/*将宽高都设置为0*/ width:0; border:1