Ios 还原函数以获取特定值
我有这个函数,它返回Ios 还原函数以获取特定值,ios,objective-c,math,Ios,Objective C,Math,我有这个函数,它返回x和y位置,只要加上度数,它就可以使物体像卫星绕行星一样做圆周运动。 在我的例子中,它像椭圆一样移动,因为我在dist中添加了+30 -(CGPoint)circularMovement:(float)degrees moonDistance:(CGFloat)dist { if(degrees >=360)degrees = 0; float x = _moon.position.x + (dist+30 + _moon.size.height/2) *co
x
和y
位置,只要加上度数,它就可以使物体像卫星绕行星一样做圆周运动。在我的例子中,它像椭圆一样移动,因为我在dist中添加了
+30
-(CGPoint)circularMovement:(float)degrees moonDistance:(CGFloat)dist
{
if(degrees >=360)degrees = 0;
float x = _moon.position.x + (dist+30 + _moon.size.height/2) *cos(degrees);
float y = _moon.position.y + (dist + _moon.size.height/2) *sin(degrees);
CGPoint position= CGPointMake(x, y);
return position;
}
我想要的是反转此函数,给出对象的x
和y
位置,并返回dist值
这可能吗?如果是这样,我将如何实现它?如果你有一个原点和一个目标,原点有坐标(x1,y1),目标有坐标(x2,y2),那么使用 点之间的距离是x2和x1之间的差值加上y2和y1之间的差值的平方根 在大多数语言中,这看起来像这样: x=x2-x1; y=y2-y1 距离=数学平方根(x*x+y*y) 数学是你的语言的数学库
float x = _moon.position.x + (dist+30 + _moon.size.height/2) *cos(degrees);
float y = _moon.position.y + (dist + _moon.size.height/2) *sin(degrees);
是最初计算值的方式,因此逆公式为:
距离=((y-_moon.position.y)/(sin(度))-_moon.size.height/2
你也可以根据x来计算,但没有意义,根据y更简单。换句话说,帮我做三角作业?