//calculate a angle in degree
function angle(xa, ya, xb, yb)
{
var a= Math.atan2(yb - ya, xb - xa);
a*= 180 / Math.PI;
return a;
}
function FindNewPointPosition()
{
//radius origine(xa,xb) destination(ya,yb)
var radius=30;
var a = angle(xa, xb, ya, yb);
newpoint.x = xa + radius * Math.cos(a);
newpoint.y = ya + radius * Math.sin(a);
return newpoint;
}
想象一下一张图片,因为我没有足够的声誉来发布一张图片: 蓝色方块是地图(5000x5000),黑色方块(500x500)玩家看到的(hud)。 Cross(400,400)是目的地的起源和太阳(4200,4200)。 红点(?,?)向玩家指示找到太阳的方向。 但是太阳和十字架的位置可以相反或在不同的角落或任何地方!
目前红点根本没有这样做..
请求帮助。
答案 0 :(得分:0)
更正后的代码 https://jsfiddle.net/ka9xr07j/embedded/result/
<?php dynamic_sidebar( '404' ); ?>
答案 1 :(得分:0)
最后,我找到了一个不使用角度的解决方案。
function newpointposition(origin, destination)
{
// radius distance between cross and red dot
var r=30;
// calculate a vector
var xDistance = destination.x - origin.x;
var yDistance = destination.y - origin.y;
// normalize vector
var length = Math.sqrt(xDistance * xDistance + yDistance * yDistance);
xDistance /= length;
yDistance /= length;
// add the radius
xDistance = xDistance * r;
yDistance = yDistance * r;
var newpoint = { x: 0, y: 0 };
newpoint.x = origin.x + xDistance;
newpoint.y = origin.y + yDistance;
return newpoint;
}
var radar = newpointposition({
x: 500,
y: 800
}, {
x: 3600,
y: 2850
});
alert(radar.x + ' ' + radar.y);
三轮车,使用jsfiddle真的帮助我。