Javascript 需要根据角度找到(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

所以我被难住了。在这之前我不懂三角学,我一直在学习,但似乎什么都不管用

所以有几件事需要注意:在html中,笛卡尔原点(0,0)是屏幕的左上角。DIVS自然旋转为0度或-->此方式

我需要找到x,y点,由?在这个问题上做标记

$('#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)