【发布时间】:2016-12-29 12:10:39
【问题描述】:
我想将一个点沿以度为单位的直线平移到特定距离。
var initialPoint = [0,0]; //Starting Point
var distance = 100; //Distance in pixels to be translated
var degree = 45; //Direction of move
var translatedPoint = moveByDegree(initialPoint, degree, distance);
function moveByDegree(initialPoint, degree, distance)
{
//formula to generate translatedPoint by degree & distance
// . . .
return translatedPoint;
}
- 0 度应该向上移动。
- 180 度应该向下移动。
- 90 度应该向右移动。
- 270 度应该向左移动。
- 其他角度对应于对角线方向。
给我简单的算法或 JavaScript 代码。
【问题讨论】:
-
基本上,从原点:
x: Math.cos(angle) * dist和y用sin计算。虽然在这个公式中0是正确的,而angle应该是弧度。如果从原点开始,只需将相应的偏移量添加到结果中即可。 -
您是在屏幕坐标中计算还是在通常方向的笛卡尔坐标中计算?
标签: javascript math geometry trigonometry