Javascript 如何找到该点(画布)的位置?

Javascript 如何找到该点(画布)的位置?,javascript,html,math,canvas,Javascript,Html,Math,Canvas,我需要解一个数学题吗?有没有简单的方法来解决这个问题?显然,你需要一些数学题来解决这个问题 Math.atan((y-y')/(x-x'))将为您获取从horrizon开始的第一行的角度(弧度) 将Pi/2(90度)添加到此角度以获得z线的角度 然后,您可以使用Math.sin和Math.cos`乘以z来找到第三个点的坐标。显然,您确实需要一些数学来实现这一点 Math.atan((y-y')/(x-x'))将为您获取从horrizon开始的第一行的角度(弧度) 将Pi/2(90度)添加到此角度


我需要解一个数学题吗?有没有简单的方法来解决这个问题?

显然,你需要一些数学题来解决这个问题

Math.atan((y-y')/(x-x'))
将为您获取从horrizon开始的第一行的角度(弧度)

将Pi/2(90度)添加到此角度以获得z线的角度


然后,您可以使用
Math.sin
Math.cos
`乘以z来找到第三个点的坐标。

显然,您确实需要一些数学来实现这一点

Math.atan((y-y')/(x-x'))
将为您获取从horrizon开始的第一行的角度(弧度)

将Pi/2(90度)添加到此角度以获得z线的角度


然后,您可以使用
Math.sin
Math.cos
`乘以z来找到第三个点的坐标。

首先计算从第二个点到第一个点的直线角度

var angle = Math.atan2(first.y - second.y, first.x - second.x);
然后使用
sin
cos

var result = {x : second.x + z*Math.cos(angle + Math.PI/2),
              y : second.y + z*Math.sin(angle + Math.PI/2)};

首先计算直线从第二点到第一点的角度

var angle = Math.atan2(first.y - second.y, first.x - second.x);
然后使用
sin
cos

var result = {x : second.x + z*Math.cos(angle + Math.PI/2),
              y : second.y + z*Math.sin(angle + Math.PI/2)};

嗯,你永远不需要做数学来解决数学问题。你可以试试神的启示。或者,晚上试着把情节放在你的枕头下,希望牙仙会留下答案。但最终,数学将是最一致的解决方案。好吧,你永远不需要做数学来解决数学问题。你可以试试神的启示。或者,晚上试着把情节放在你的枕头下,希望牙仙会留下答案。但最终,数学将是最一致的解决方案。这是错误的。要获得角度,您需要使用
atan
(而不是
tan
),甚至比
atan(y/x)
更好的是
atan2(y,x)
,它处理整圈,不需要不同象限的所有情况。此外,要找到结果点,您需要使用
cos
sin
(而不是
acos
asin
)。已删除下一票。我仍然认为使用
atan
而不是
atan2
是一个坏主意,因为当
dx==0
时会出现问题,并且因为您必须处理所有正/负
dx
dy
(当计算
dy/dx
时,两个负数或两个正数将给出相同的结果,从而删除符号信息,而在这两种情况下,角度显然是相反的方向;(+1,+1)=PI/4,(-1,-1)=-3/4 PI)。这是错误的。要获得角度,需要使用
atan
(而不是
tan
)甚至比
atan(y/x)
更好的是
atan2(y,x)
,它处理整圈,不需要不同象限的所有情况。还要找到结果点,你需要使用
cos
sin
(不是
acos
asin
)。删除了否决票。我仍然认为使用
atan
而不是
atan2
是个坏主意,因为当
dx==0
时你会遇到问题,而且因为你必须处理所有正/负
dx
dy
(计算
dy/dx
时,两个负数或两个正数将给出相同的结果,从而删除符号信息,而在这两种情况下,角度显然是相反的方向;(+1,+1)=PI/4,(-1,-1)=-3/4 PI)。