canvas-Html5 Canvas通过鼠标移动画圆,一下为Javascript画圆部分函数 有什么问题?

问题描述

Html5 Canvas通过鼠标移动画圆,一下为Javascript画圆部分函数 有什么问题?

var canvas=document.getElementById("demo");
var cxt=canvas.getContext("2d");

function circle()
{
canvas.onmousedown=function(evt)
{
cxt.lineWidth=1;
evt=window.event||evt;

var startX=evt.pageX-this.offsetLeft;
var startY=evt.pageY-this.offsetTop;
 }

canvas.onmousemove=function(evt)
{
var x=evt.pageX-this.offsetLeft;
var y=evt.pageY-this.offsetTop;

cxt.strokeStyle="rgb(180,0,0)"; 

cxt.beginPath();
var radii=Math.sqrt((startX-x)*(startX-x)+(startY-y)*(startY-y));   

cxt.arc(startX,startY,radii,0,Math.PI*2,false);

cxt.stroke();
cxt.closePath();
}

}

解决方案

可以参考一下:http://blog.csdn.net/qq_19558705/article/details/50519952

解决方案二:

画实心圆还是空心圆?

解决方案三:

是在canvas中没显示么?

解决方案四:

注意startX和startY作用域,而且你也没有执行circle绑定鼠标事件


<canvas id="demo" width="500" height="400"></canvas>
<script>

    var canvas = document.getElementById("demo");
    var cxt = canvas.getContext("2d");

    function circle() {
        var startX,startY/////////
        canvas.onmousedown = function (evt) {
            cxt.lineWidth = 1;
            evt = window.event || evt;

            /*var*/ startX = evt.pageX - this.offsetLeft;
            /*var*/ startY = evt.pageY - this.offsetTop;
        }

        canvas.onmousemove = function (evt) {
            var x = evt.pageX - this.offsetLeft;
            var y = evt.pageY - this.offsetTop;

            cxt.strokeStyle = "rgb(180,0,0)";

            cxt.beginPath();
            var radii = Math.sqrt((startX - x) * (startX - x) + (startY - y) * (startY - y));

            cxt.arc(startX, startY, radii, 0, Math.PI * 2, false);

            cxt.stroke();
            cxt.closePath();
        }

    }
    circle()///////////////
</script>
时间: 2025-01-24 01:45:57

canvas-Html5 Canvas通过鼠标移动画圆,一下为Javascript画圆部分函数 有什么问题?的相关文章

代码-点击一张图片 该图片可加载到canvas里并实现鼠标移上去可控制该图片旋转 缩放 移动

问题描述 点击一张图片 该图片可加载到canvas里并实现鼠标移上去可控制该图片旋转 缩放 移动 求代码... 类似 解决方案 http://zhidao.baidu.com/link?url=1lDL3pYGpqNztyY7xA8jXwoLUvGgSw5Pmwaa9bDv9DF2w8wUvKlo5jIJsgx9nXmTXdwT2MTAdiR14TsXW51RrmUH6yUkzsIXfjWF0VBBXfe 解决方案二: 实现当点击一张图片的时候,图片会放大,再点击图片的背景的时候,图片会缩放回去

俞渝:画一个圆就要把它画圆了

俞渝22岁离开故土到美国留学,32岁回国创业,这10年,为她后来事业腾飞奠定了基础.她自己总结道:在国内受到了很好的系统教育,学会了严谨地做人.做事:美国给她最大的影响在于,不怕失败,敢于创新,并能尽量保持一份轻松的心态.她1965年5月生于重庆:1986年毕业于北京外国语学院英语专业:1986-1987年在巴布科克威尔科克斯公司北京分公司任美方总经理翻译兼秘书:1987-1988年在俄勒冈大学国际研究硕士班肄业:1992年获得纽约大学工商管理学院金融及国际商务MBA学位,并代表毕业生在毕业典礼

HTML5 canvas绘制雪花飘落动画(需求分析、知识点、程序编写分布详解)

原文:HTML5 canvas绘制雪花飘落动画(需求分析.知识点.程序编写分布详解) 看到网上很多展示html5雪花飞动的效果,确实非常引人入胜,我相信大家也跟我一样看着心动的同时,也很好奇,想研究下代码如何实现:虽然哦很多地方也能下载这些源码,不过也不知道别人制作此类动画时的思路及难点分析. 我这几天刚好学习了一下,也趁着此刻有时间从需求分析.知识点.程序编写一步步给大家解剖下,要是在各位关公面前耍大刀了,可别见笑哟. 最终效果图如下: 图1 一.需求分析 1.圆形雪花 本示例中雪花形状使用圆

浅析HTML5 Canvas入门教程及实例

什么是 Canvas? HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成. <canvas> 标签只是图形容器,您必须使用脚本来绘制图形. 你可以通过多种方法使用Canva绘制路径,盒.圆.字符以及添加图像. 浏览器支持 Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 支持 <canvas> 元素. 注意: Internet Explorer 8 及更早 IE

用FLASH AS实现鼠标画圆的效果

鼠标 在FLASH或PHOTOSHOP中能够很轻松的画出一个圆或者椭圆,怎样做一个作品,让用户可以直接在里面拖动鼠标画出一个圆或者椭圆来呢?下面是BreakDS用AS实现这个效果的讲解-- 预览: 一.基本定义:虽然说不说大家都清楚,但是我还是想讲一下,以免一些人忘得差不多了-- 圆:平面上到定点距离等于定长的点的轨迹.椭圆:平面上到两定点距离和等于定长(定长大于两定点间距离)的点的轨迹. 二.问题描述:画圆和椭圆,使用AS. 三.问题分析: 1.圆呵呵,大多数人看到后肯定想:哼-这不简单,不就

HTML5 Canvas 超炫酷烟花绽放动画教程

这是一个很酷的HTML5 Canvas动画,它将模拟的是我们现实生活中烟花绽放的动画特效,效果非常逼真,但是毕竟是电脑模拟,带女朋友看就算了,效果还是差了点,呵呵.这个 HTML5 Canvas动画有一点比较出色,就是其性能,Chrome上基本没有卡的感觉,就算你放出很多烟花也一样. 你可以在这里看在线演示 下面我们来简单分析一下实现这款HTML5烟花特效的过程及代码,主要由HTML代码.CSS代码以及Javascript代码组成,当然javascript代码是最重要的. HTML代码: <di

《HTML5 canvas开发详解(第2版)》——1.11 动画版本的Hello World

1.11 动画版本的Hello World "Hello World"和"猜字母"本身都是不错的示例,但是它们都没能回答出"为什么"--究竟为什么要使用HTML5 Canvas?自创立以来,静态的图像和文字就是HTML的领域,那么画布的不同之处在哪里呢?要回答这个问题,需要创建第二个"Hello World"示例.这个示例将介绍画布与HTML上的其他显示方式的最大不同之处:动画.在这个示例中,将为"Hello Wor

JavaScript+html5 canvas制作的圆中圆效果实例_javascript技巧

本文实例讲述了JavaScript+html5 canvas制作的圆中圆效果.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE html> <html> <head> <title>demo</title> <style type="text/css"> #canvas { background:#F2F2F2; height:500px; height:500px; mar

HTML5 Canvas捕获用于游戏开发的键盘、鼠标和触摸事件

学习如何处理键盘和鼠标事件,如何阻止 Web 浏览器的默认事件行为,以及如何向游戏对象的某种逻辑表示传播事件.此外,还将学习如何处理 iPhone 和 iPad 等移动设备上与设备无关的(device-agnostic)输入. 令拥有 Flash 或 Silverlight 背景的开发人员感到惊讶的是,为 HTML5 Canvas 编写的应用程序在处理用户输入方面并没有什么特立独行之处.实质上,从启用了 JavaScript 的 Web 浏览器诞生之初开始,HTML 用户输入就涉及到使用内置于浏