zhong-yy/GraPly

请问g = g + g_const(pol, ob, a*ob.x + b*ob.y + c*ob.z)怎么理解?

robNavLoc opened this issue · 2 comments

上面的代码段出现在src/ForwardPolyhedron/gravity.cpp的86行中。这里为什么要加上观测点的密度函数值的引力值啊?论文里面的公式好像没有?
微信图片_20230715113139
麻烦您帮忙看一下,谢谢。(ResearchGate里面也是我请教的)

亚博你好,谢谢你对我们的工作感兴趣。

Point Gravity::g_1st(const Polyhedral& pol, const Point& ob,
const double& a, const double& b, const double& c)
{
Point g(0.0, 0.0, 0.0);
g = g_1st0(pol, ob, a, b, c);
g = g + g_const(pol, ob, a*ob.x + b*ob.y + c*ob.z);
return g;
}

这是因为我们的推导都是基于“观测点位于坐标原点”这一前提条件的。在实际中,确定了一个坐标系之后,不可能每个观测点都位于原点,所以在计算的时候首先需要把坐标系平移到以计算点为原点的局部坐标系下。所以内部的计算实际是在局部坐标系下进行的,而程序“对外用户接口”则是全局坐标系。

对于非均匀密度的异常体而言,坐标转换后,异常体的密度表达式和原来坐标系下的表达式不一样了。假设一个线性密度的异常体密度为f(x,y,z)=ax+by+cz (这里的xyz是全局坐标系),观测点坐标是(x',y',z'),那么在以观测点为原点的坐标系中,密度表达式变为a(x+x')+b(y+y')+c(z+z') (注意这里的xyz变成了局部坐标系)
image

没有其他问题的话,我就关闭这个issue了。 还有其他问题的话,随时可以联系我。