[ javascript canvas isPointInPath(x,y) 判断点是否在最后绘制的图形中 ] javascript canvas isPointInPath(x,y) 判断点是否在最

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ javascript canvas isPointInPath(x,y) 判断点是否在最后绘制的图形中 ] javascript canvas isPointInPath(x,y) 判断点是否在最相关的知识,希望对你有一定的参考价值。

 1 <!DOCTYPE html>
 2 <html lang=‘zh-cn‘>
 3 <head>
 4 <title>Insert you title</title>
 5 <meta name=‘description‘ content=‘this is my page‘>
 6 <meta name=‘keywords‘ content=‘keyword1,keyword2,keyword3‘>
 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 8 <link rel=‘stylesheet‘ type=‘text/css‘ href=‘./css/index.css‘ />
 9 <script type=‘text/javascript‘ src=‘./js/jquery-1.12.1.min.js‘></script>
10 <style type=‘text/css‘>
11 html,body,img,canvas {
12     margin: 0; padding: 0;
13 }
14 
15 html {
16     height: 100%;
17 }
18 
19 body {
20     background: #000;
21 }
22 
23 #can {
24     background: #FFF; display: block; margin: 25px auto; border-radius: 2px;
25 }
26 </style>
27 <script type=‘text/javascript‘>
28     $( function(){
29         var can = $( ‘#can‘ ).get( 0 );
30         var oCan = can.getContext( ‘2d‘ );
31 
32         oCan.beginPath();
33         oCan.fillStyle = getRandomColor();
34         oCan.rect( 20 , 50 , 100 , 100 );
35         oCan.fill();
36         oCan.closePath();
37 
38         oCan.beginPath();/* 如果要想只点击最后绘制的图形有效果就使用开始路径和闭合路径包裹起来,如果要作用于整个画布在任何有图形地方点击有效果就只使用一个大的开始及闭合路径包裹起来既可以了 */
39         oCan.fillStyle = getRandomColor();
40         //oCan.fillRect(200 , 150 , 100 , 100);    /* 直接使用这种方式来使用oCan.isPointInPath(x,y)判断是无效的,无论点击哪里都是无效的 返回false */
41         oCan.rect( 200 , 150 , 100 , 100 );/* 要想使用 oCan.isPointInPath(x,y)来判断就必须结合使用 37 38 行间代码,否则无效 */
42         oCan.fill();
43         oCan.closePath();
44 
45         can.onmousedown = function( ev ){
46             var ev = window.event || ev;
47             var clientX = ev.clientX - this.offsetLeft;
48             var clientY = ev.clientY - this.offsetTop;
49             if( oCan.isPointInPath( clientX , clientY ) == 1 /*用于判断在当前路径中是否包含检测点的方法,只检测我们最后绘制出来的图形*/
50                             || oCan.isPointInPath( clientX , clientY ) == true
51                             || oCan.isPointInPath() ){ /* 在不同的浏览器中对于布尔值的显示不同 推荐直接使用最后一种方式来进行判断,因为 这是JS中对于布尔值的判断机制 (非0的数值,非空字符串,true均被认为真的)*/
52                 alert( ‘点击的是在我们最后绘制的图形中...‘ );
53             }
54         };
55 
56         function getRandomColor(){
57             var num = ‘0xFFFFFF‘;
58             var len = Math.ceil( Math.random() * parseInt( num , 16 ) ).toString( 16 );
59             if( length < 6 ){
60                 for( var i = 0 ; i < 6 - len.length ; i++ ){
61                     len += ‘0‘;
62                 }
63             }
64             return ‘#‘ + len;
65         }
66     } );
67 </script>
68 </head>
69 <body>
70     <canvas id=‘can‘ width=‘500‘ height=‘450‘>检测到您的浏览器版本过低,请升级您的浏览器,以获取更好的体验效果...</canvas>
71 </body>
72 </html>

 

以上是关于[ javascript canvas isPointInPath(x,y) 判断点是否在最后绘制的图形中 ] javascript canvas isPointInPath(x,y) 判断点是否在最的主要内容,如果未能解决你的问题,请参考以下文章

javascript canvas画订单

JavaScript强化教程——canvas

javascript:使用canvas绘图2D图形

JavaScript图形实例:Canvas API

用html5的canvas和JavaScript创建一个绘图程序

Javascript如何在网页上实现画图功能