canvas拖动
var canvas=document.getElementById("canvas");
var cxt=canvas.getContext("2d");
var centerX=canvas.width/2;
var centerY=canvas.height/2;
function ball(x,y,radius,speed){
this.x=x;
this.y=y;
this.radius=radius;
this.speed=speed;
}
var speed={x:0,y:0}
var b=[];
b.push(new ball(centerX,centerY,150,speed))
function draw(){
var d=b[0];
cxt.clearRect(0,0,canvas.width,canvas.height)
cxt.beginPath();
cxt.arc(d.x,d.y,d.radius,0,Math.PI*2,true);
cxt.fillStyle="red";
cxt.fill();
cxt.closePath()
}
draw();
function isMoveUpBall(d,x,y){
var dx=x-d.x;
var dy=y-d.y;
var dist=Math.sqrt(dx*dx+dy*dy);
return dist<d.radius;
}
function isMoveUp(body,x,y){
return x>body.x && x<body.x+body.width && y>body.y && y<body.height+body.y;
}
var isUp=1;
var d=b[0];
var oldX = 0;
var oldY = 0;
function move(event){
var x=event.point.x,y=event.point.y;
var body={x:d.x-d.radius,y:d.y-d.radius,width:d.radius*2,height:d.radius*2};
if(isUp==0 && isMoveUpBall(d,x,y))
{
console.log(oldX,oldY)
d.x = x+(-oldX);
d.y = y+(-oldY);
d.speed.x = d.x - oldX;
d.speed.y = d.y - oldY;
}
draw();
}
var CsX=centerX,CsY=centerY;
function up(event){
isUp=1;
CsX=d.x;
CsY=d.y;
console.log(CsX,CsY)
}
function down(event){
isUp=0;
oldX = event.point.x-CsX;
oldY = event.point.y-CsY;
draw();
}
tool.MT(canvas,move,down,up);
canvas拖动的更多相关文章
- win10 uwp 拖动控件
我们会使用控件拖动,可以让我们做出好看的动画,那么我们如何移动控件,我将会告诉大家多个方法.其中第一个是最差的,最后的才是我希望大神你去用. Margin 移动 我们可以使用Margin移动,但这是w ...
- Cocos Creator学习四:按钮响应事件
1.方法一:通过编辑器对cc.Button的属性进行拖放操作进行控制 (1)创建脚本BtnClick1.js,增加btnClick1函数,然后拖放到Canvas节点中(记得拖放,否则下面步骤将找不到对 ...
- 2018-8-10-win10-uwp-拖动控件
原文:2018-8-10-win10-uwp-拖动控件 title author date CreateTime categories win10 uwp 拖动控件 lindexi 2018-08-1 ...
- canvas实现拖动页面时显示窗口视频
简介 当前主流的视频网站目前有不少新鲜好玩的功能,最明显的莫过于小视频的显示--当视频不在当前视口范围 时,会在右下角用一个小窗口来显示当前的视频,而且可以拖拽. 今晚心血来潮,起了动手试试的念头.我 ...
- 利用 canvas 破解 某拖动验证码
利用 canvas 破解 某拖动验证码 http://my.oschina.net/u/237940/blog/337194
- 实现鼠标拖动canvas绘制的图片
不啰嗦上代码: <html> <head> <meta http-equiv="Content-Type" content="text/ht ...
- html5 canvas画图之图形随拖动而复制(有操作指示)
学习html5 canvas,写了一个小练习来加深理解,可以实现图形随拖动而复制. <!DOCTYPE html> <html> <head> <meta c ...
- Canvas中鼠标获取元素并拖动技术
Silverlight拖动,需要Canvas. Canvas管网定义: 定义一个区域,在该区域中可以使用相对于该区域的坐标显式定位子元素. XAML <Canvas ...> oneOrM ...
- WPF 窗体中的 Canvas 限定范围拖动 鼠标滚轴改变大小
xaml代码: <Canvas Name="movBg"> <Canvas.Background> <LinearGradientBrush EndP ...
随机推荐
- Codeforces 500B. New Year Permutation[连通性]
B. New Year Permutation time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- NOIP2005过河[DP 状态压缩]
题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数 ...
- 线程同步以及yield()、wait()、Notify()、Notifyall()
一.线程同步 1.线程同步的目的是为了保护多个线程访问一个资源时对资源的破坏. 2.线程同步方法是通过锁来实现,每个对象都有切仅有一个锁,这个锁与一个特定的对象关联,线程一旦获取了对象锁,其他访问该对 ...
- Jenkins学习二:Jenkins安装与配置
安装前关注: Q:应该选择哪个版本的Jenkins? A:如果你是公司正式使用推荐长期支持版(LTS),原因:稳定.如果你是学习,随便哪个版本都可以. Q:JDK应该安装哪个版本的? A:推荐安装JD ...
- poj[2392]space elevator
Description The cows are going to space! They plan to achieve orbit by building a sort of space elev ...
- ajax跨域之设置Access-Control-Allow-Origin
通过在服务器端设置请求头的源可以实现跨域 public function test_ajax() { header("Access-Control-Allow-Origin: http:// ...
- mui禁止横屏显示,仅支持竖屏显示
mui.plusReady(function () { plus.screen.lockOrientation("portrait-primary"); });
- 解决编译apache出现的问题:configure: error: APR not found . Please read the documentation
今日编译apache时出错: #./configure --prefix……检查编辑环境时出现: checking for APR... no configure: error: APR not fo ...
- 交叉验证 Cross validation
来源:CSDN: boat_lee 简单交叉验证 hold-out cross validation 从全部训练数据S中随机选择s个样例作为训练集training set,剩余的作为测试集testin ...
- 去掉Win7资源管理器左侧导航窗格中的收藏夹、库等的方法
去掉Win7资源管理器的收藏夹/库/家庭组/网络的方法 将Windows 7资源管理器左侧导航窗格中的收藏夹.库.家庭组.网络全部去掉,只剩下计算机, 以收藏夹为例作简要说明. 首先打开注册表编辑器, ...