小编Adr*_*pez的帖子

立方贝塞尔曲线上的最近点?

如何沿着最接近平面中任意点P的三次贝塞尔曲线找到点B(t)?

graphics geometry bezier curve spline

34
推荐指数
4
解决办法
2万
查看次数

开罗路径上的布尔运算?

有没有办法通过联合,差异和交叉等布尔运算将两条路径组合在一起来在开罗建立路径?我正在研究一个使用Cairo进行渲染的矢量图形应用程序,并希望让我的用户能够以这种方式将路径组合在一起,但我找不到在开罗这样做的方法.

graphics 2d vector path cairo

6
推荐指数
1
解决办法
1156
查看次数

使用 GJK 的距离子算法在最接近原点的单纯形上找到点

我正在尝试实现Gilbert-Johnson-Keerthi 距离算法(GJK),但我遇到了“距离子算法”(也称为“约翰逊算法”)的问题,该算法用于确定单纯形上的点离原点最近。我得到了不正确的结果,但我在我的代码中找不到任何错误,所以问题一定出在我对算法的解释上。

在 Johnson 的算法(如 Gino van den Bergen 的书《交互式 3D 环境中的碰撞检测》中所述)中,X = {yi : i ? Ix}最接近原点的单纯形仿射壳上的点由下式给出:

在此处输入图片说明

其中 ?i^X 值是按照 X 的基数递增的顺序递归确定的:

在此处输入图片说明

...和 ​​?^X 由以下给出:

在此处输入图片说明

对于二维,我使用以下方法找到最接近原点的点:

Point ClosestPointToOrigin(Simplex simplex)
{
    float dx = 0;
    for (int i = 0; i < simplex.size(); ++i)
        dx += dj(simplex, i);

    Point closest_point(0,0);
    for (int i = 0; i < simplex.size(); ++i)
        closest_point += dj(simplex, i) / dx * simplex[i];

    return closest_point;
}
Run Code Online (Sandbox Code Playgroud)

其中 ?i 值由以下因素决定:

float …
Run Code Online (Sandbox Code Playgroud)

algorithm collision-detection computational-geometry

5
推荐指数
1
解决办法
1750
查看次数