Javascript 需要根据角度找到(x,y)坐标
所以我被难住了。在这之前我不懂三角学,我一直在学习,但似乎什么都不管用 所以有几件事需要注意:在html中,笛卡尔原点(0,0)是屏幕的左上角。DIVS自然旋转为0度或-->此方式 我需要找到x,y点,由?在这个问题上做标记Javascript 需要根据角度找到(x,y)坐标,javascript,trigonometry,angle,Javascript,Trigonometry,Angle,所以我被难住了。在这之前我不懂三角学,我一直在学习,但似乎什么都不管用 所以有几件事需要注意:在html中,笛卡尔原点(0,0)是屏幕的左上角。DIVS自然旋转为0度或-->此方式 我需要找到x,y点,由?在这个问题上做标记 $('#wrapper').on('click', function(e){ mouseX = e.pageX; mouseY= e.pageY; var angle = getAngle(mouseX,Rocket.centerX,mouse
$('#wrapper').on('click', function(e){
mouseX = e.pageX;
mouseY= e.pageY;
var angle = getAngle(mouseX,Rocket.centerX,mouseY,Rocket.centerY);
var angleDistance = Math.sqrt((Math.pow((mouseX - (Rocket.left+Rocket.halfX)),2)) + (Math.pow((mouseY-(Rocket.top+Rocket.halfY)),2)));
var cp2Angle = -90 +(angle*2);
var invCP2Angle = 90+ angle;
var cp2Distance = angleDistance*.5;
//Red Line
$(this).append('<div class="line" style="transform-origin:left center;width:'+(Math.round(angleDistance))+'px;top:'+(Rocket.top+Rocket.halfY)+'px;left:'+(Rocket.left+Rocket.halfX)+'px;transform:rotate('+(Math.round(angle))+'deg);"></div>');
//Blue Line
$(this).append('<div class="line" style="background:#0000FF;transform-origin:left center;width:'+Math.round(cp2Distance)+'px;top:'+(mouseY)+'px;left:'+(mouseX)+'px;transform:rotate('+(Math.round(cp2Angle))+'deg);"></div>');
}
function getAngle(x2,x1,y2,y1){
var angle = Math.degrees(Math.atan2(y2-y1,x2-x1));
return angle;
}
Math.degrees = function(radians) {
return (radians * 180) / Math.PI;
};
我不太懂javascript,所以我不给你代码,我只给你公式。在下图中,我给出了使用的约定
如果我理解正确,您已经有了
d2=0.5*d1
,d1
,(x2,y2)
以及角度。这应该只是将这些值插入到上述公式中的问题。我对javascript不太了解,所以我不给你代码,只给你公式。在下图中,我给出了使用的约定
如果我理解正确,您已经有了
d2=0.5*d1
,d1
,(x2,y2)
以及角度。这应该只是将这些值插入上述公式的问题。让a
、B
和C
成为三点
AB = ( cos(angle1), sin(angle1) ) * length1
B = A + B
BC = ( cos(angle1+angle2), sin(angle1+angle2) ) * length2
C = B + BC
就你而言
A = ( 0, 0 )
angle1 = 31°
length1 = 655
angle2 = 152°
length2 = 328
那么
设
A
、B
和C
为三点
AB = ( cos(angle1), sin(angle1) ) * length1
B = A + B
BC = ( cos(angle1+angle2), sin(angle1+angle2) ) * length2
C = B + BC
就你而言
A = ( 0, 0 )
angle1 = 31°
length1 = 655
angle2 = 152°
length2 = 328
那么
我想知道这是否适用于数学?不管怎样,如果你能等一会儿,我会尽力帮你的感谢嵌入图像!你不懂三角学?“那不是高中数学吗?”Barmar:根据你的评论,我认为你认为自己是TIG的专家?不是专家,但我仍然记得SokCatotoa:)我不知道这是否适合Max.StExchange……?不管怎样,如果你能等一会儿,我会尽力帮你的感谢嵌入图像!你不懂三角学?“那不是高中数学吗?”Barmar:根据你的评论,我认为你认为自己是TIG的专家?不是专家,但我仍然记得SokCatotoa:是的!我相信这是可行的。这是极坐标公式,对吗?(角,r)?我以前试过这个,但我认为我弄糟了最终值,或者没有将它们添加到2 coord中。谢谢对我相信这是可行的。这是极坐标公式,对吗?(角,r)?我以前试过这个,但我认为我弄糟了最终值,或者没有将它们添加到2 coord中。谢谢
C = ( Math.cos(31*Math.PI/180), Math.sin(31*Math.PI/180) ) * 655 +
( Math.cos(152*Math.PI/180), Math.sin(152*Math.PI/180) ) * 328
= ( Math.cos(31*Math.PI/180) * 655 + Math.cos(183*Math.PI/180) * 328,
Math.sin(31*Math.PI/180) * 655 + Math.sin(183*Math.PI/180) * 328 )
= ( 233.8940945603834, 320.1837454184)