使用C++將曲線重新取樣到均勻長度段的最佳方式是什麼?我擁有的是一組代表2d曲線的點。在我的例子中,我有一個帶有x和y分量的點結構和一個帶有測試位置的點向量。每對點代表曲線上的一段。示例重採樣曲線是以下圖像。紅色圓圈是原始位置,綠色圓圈是重新採樣後的目標位置。使用C++將曲線重新取樣到均勻長度段
struct Point
{
float x, y;
};
std::vector<Point> Points;
int numPoints = 5;
float positions[] = {
0.0350462, -0.0589667,
0.0688311, 0.240896,
0.067369, 0.557199,
-0.024258, 0.715255,
0.0533231, 0.948694,
};
// Add points
int offset = 2;
for (int i =0; i < numPoints; i++)
{
offset = i * 2;
Point pt;
pt.x = positions[offset];
pt.y = positions[offset+1];
Points.push_back(pt);
}
執行插值的最佳方法取決於數據的性質以及您需要的精度。我首先使用線性插值和樣條插值搜索來看看他們是否會做你需要的。 – RyanP
哪一本關於計算機圖形學的書是你用來學習這個主題的? –
如果我通過邊緣進行重新採樣,從當前點到下一個點很容易取代或lerp。我無法弄清楚的是整個曲線。 – sabotage3d