我们有: 1)m_ptBulletStartPos 点 2)触摸移动点
计算内容:通过投掷弹罩点和触摸移动点并根据触摸移动旋转的直线上的外部点。
获取方法:我们创建一个方法,在其中绘制虚线,该函数根据另一个函数调用,该函数根据触摸移动点响应工作。
我必须计算两个 CGPoint 的外点。
我的第一个 CGPoint 是 - ccp(m_ptBulletStartPos.x,m_ptBulletStartPos.y);
// 固定点
第二个 CGPoint 是 - At touchesMoved
我将 CGPoint 对象添加到一个数组中。
External point(it will move accruing to touch moved
|
|
|
|
ccp(m_ptBulletStartPos.x,m_ptBulletStartPos.y)// it should be fixed like anchor
|
|
|
|
Touch move point : ccp(touch.x,touch.y)
这是我的代码根据查找外部点工作,但工作不正确。
CGPoint myexternalPoint=ccp(230,60); //suppose
float fDistancem = sqrt(pow(myexternalPoint.x - point.x, 2) + pow(myexternalPoint.y - point.y, 2));
float fDistancen = sqrt(pow(myexternalPoint.x - m_ptBulletStartPos.x, 2) + pow(myexternalPoint.y - m_ptBulletStartPos.y, 2));
CGFloat xdt=(fDistancem*point.x-fDistancen*m_ptBulletStartPos.x)/(fDistancem-fDistancen);
CGFloat ydt=(fDistancem*point.y-fDistancen*m_ptBulletStartPos.y)/(fDistancem-fDistancen);
CGPoint newexternalPoint = ccp(xdt, ydt);
NSLog(@"new externalPoint %@", NSStringFromCGPoint(newexternalPoint));