OpenGL如何检查一个点是否在由伯恩斯坦曲线构成的区域内
OpenGL how to check if a point is inside a area made of Bernstein curve
我想检查指定的坐标是否在曲线下闭合的区域内。
我的曲线生成如下:
float CtlPoint[] =
{
0, -0.3, 0,
0.15, -0.25, 0,
0.6, -0.2, 0,
0.2, 0.20, 0,
0.10, 0.25, 0,
0.05, 0.5, 0,
0.02, 0.6, 0,
0.0, 0.8, 0,
-0.02, 0.6, 0,
-0.05, 0.5, 0,
-0.10, 0.25, 0,
-0.2, 0.20, 0,
-0.6, -0.2, 0,
-0.15, -0.25, 0,
0, -0.3, 0
};
glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 15, CtlPoint);
glEnable(GL_MAP1_VERTEX_3);
glBegin(GL_LINE_STRIP);
for (int t = 0; t <= 100; ++t){
glEvalCoord1f(static_cast<float>(t) / 100);
}
glEnd();
我随机生成了 2 个浮点数 x 和 y,并想使用这两个值测试坐标是否在上面指定的曲线内。
通过您最喜欢的方法捕获评估输出并使用标准的多边形点测试。
我想检查指定的坐标是否在曲线下闭合的区域内。 我的曲线生成如下:
float CtlPoint[] =
{
0, -0.3, 0,
0.15, -0.25, 0,
0.6, -0.2, 0,
0.2, 0.20, 0,
0.10, 0.25, 0,
0.05, 0.5, 0,
0.02, 0.6, 0,
0.0, 0.8, 0,
-0.02, 0.6, 0,
-0.05, 0.5, 0,
-0.10, 0.25, 0,
-0.2, 0.20, 0,
-0.6, -0.2, 0,
-0.15, -0.25, 0,
0, -0.3, 0
};
glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 15, CtlPoint);
glEnable(GL_MAP1_VERTEX_3);
glBegin(GL_LINE_STRIP);
for (int t = 0; t <= 100; ++t){
glEvalCoord1f(static_cast<float>(t) / 100);
}
glEnd();
我随机生成了 2 个浮点数 x 和 y,并想使用这两个值测试坐标是否在上面指定的曲线内。
通过您最喜欢的方法捕获评估输出并使用标准的多边形点测试。