我正在使用格雷厄姆扫描算法找到一组点的凸壳,我试图按极角对点进行排序,但我不知道怎么做(我已经按照他们的方式对点集进行了排序) Y坐标).
我已经写过的是这样的:
public double angle(Coord o, Coord a)
{
return Math.atan((double)(a.y - o.y) / (double)(a.x - o.x));
}
Run Code Online (Sandbox Code Playgroud)
这里Coord是一流的,我有X和Y坐标为double.
我还看了Stack Overflow中的一篇类似文章,其中有人试图用C++实现这个角度,但我不明白qsqrt.我们在Java中有这样的东西吗?
qreal Interpolation::dp(QPointF pt1, QPointF pt2)
{
return (pt2.x()-pt1.x())/qSqrt((pt2.x()-pt1.x())*(pt2.x()-pt1.x()) + (pt2.y()-pt1.y())*(pt2.y()-pt1.y()));
}
Run Code Online (Sandbox Code Playgroud)
如果有人能帮助我,我会很高兴的.
我试图找到循环的不变量(例如在下面的代码中)我真的不知道如何找到一般的不变量。任何人都可以帮助我如何找到不变量,并帮助我找到以下代码的不变量吗?谢谢
public static int div(int a, int b)
{
int q = 0;
while(a >= b)
{
a -= b;
q++;
}
return q;
}
Run Code Online (Sandbox Code Playgroud)