如何以指定角度将点平移到指定距离?
How to translate a point to specified distance at a specified angle?
我想沿着一条角度以度为单位的直线将一个点平移到特定距离。
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代码。
你必须给出初始点、角度和移动单位。
Math.radians = function(degrees) {
return degrees * Math.PI / 180;
};
function move(point, angle, unit) {
var x = point[0];
var y = point[1];
var rad = Math.radians(angle % 360);
x += unit*Math.sin(rad);
y += unit*Math.cos(rad);
return [x, y];
}
move([0,0], 180, 100); // [0, 100]
我想沿着一条角度以度为单位的直线将一个点平移到特定距离。
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代码。
你必须给出初始点、角度和移动单位。
Math.radians = function(degrees) {
return degrees * Math.PI / 180;
};
function move(point, angle, unit) {
var x = point[0];
var y = point[1];
var rad = Math.radians(angle % 360);
x += unit*Math.sin(rad);
y += unit*Math.cos(rad);
return [x, y];
}
move([0,0], 180, 100); // [0, 100]