Javascript 我希望图像沿着其旋转角度的斜边移动,但有时会以不同的方式移动
我让我的小图像旋转一个随机的角度。我希望它沿着这个角度的斜边移动,但它会以不同的方式移动,这是代码Javascript 我希望图像沿着其旋转角度的斜边移动,但有时会以不同的方式移动,javascript,math,Javascript,Math,我让我的小图像旋转一个随机的角度。我希望它沿着这个角度的斜边移动,但它会以不同的方式移动,这是代码 <!DOCTYPE html> <html> <head> <title>heart</title> <meta charset="UTF-8"> </head> <body> <script> // when click, an image pop up
<!DOCTYPE html>
<html>
<head>
<title>heart</title>
<meta charset="UTF-8">
</head>
<body>
<script>
// when click, an image pop up
// use addEventListener to do so
let timer=null;
let imgList=[];
document.addEventListener("click",function(event){
let img= document.createElement("img");
img.style.position="absolute";
img.style.left=(event.clientX-32)+"px";
img.style.top=(event.clientY-32)+"px";
img.src="1.png";
var de = Math.floor(Math.random()*60-30);
img.style.transform="rotate(" + de + "deg)"; document.body.appendChild(img);
setTimeout(draw,1000,de);
function draw(de){
//convert px to intgeter
var x=parseInt(img.style.left,10);
var y=parseInt(img.style.top,10);
var id = setInterval(frame,10);
var pos=0;
function frame(){
if (pos==36){
clearInterval(id);
img.remove();
}
else{
pos++;
img.style.top=(y-pos)+'px';
img.style.left=(Math.tan(de)*pos)+x+'px';
}
});
</script>
</body>
心
//单击时,会弹出一个图像
//使用addEventListener执行此操作
设定时器为空;
设imgList=[];
document.addEventListener(“单击”),函数(事件){
设img=document.createElement(“img”);
img.style.position=“绝对”;
img.style.left=(event.clientX-32)+“px”;
img.style.top=(event.clientY-32)+“px”;
img.src=“1.png”;
var de=数学地板(数学随机()*60-30);
img.style.transform=“rotate”(+de+“deg)”;document.body.appendChild(img);
设置超时(绘图,1000,de);
功能图(de){
//将px转换为intgeter
var x=parseInt(img.style.left,10);
var y=parseInt(img.style.top,10);
var id=设置间隔(第10帧);
var-pos=0;
函数框架(){
如果(位置==36){
清除间隔(id);
img.remove();
}
否则{
pos++;
img.style.top=(y-pos)+'px';
img.style.left=(Math.tan(de)*pos)+x+'px';
}
});
希望有人能帮助我。非常感谢。我已经考虑了一个小时的数学问题。tan希望争论以弧度为单位,你通过了学位。这有点有效,但每次都
de%(PI/2)==0
,结果改变了符号,这意味着方向改变了。你必须在通过之前将度转换为弧度,rad=Math.PI/180*de
。谢谢!它对我很有效!Math。tan
希望参数是弧度,你通过了度。它有点有效,但每次都是de%(PI/2)==0
,结果改变了符号,这意味着方向改变了。你必须在通过之前将度转换为弧度,rad=Math.PI/180*de
。谢谢!它对我很有效