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)。