平滑前
平滑后
代码实现
#include <windows.h>
#include <tchar.h>
#include <math.h>
#include "CELLMath.hpp"
#include "OpenGLWindow.h"
#include <vector>
using namespace CELL;
class SamplerSmooth :public OpenGLWindow
{
public:
tspline<float> _spline;
bool _isButtonDown;
size_t _selectIndex;
POINT _mouseOld;
SamplerSmooth()
{
_isButtonDown = false;
_selectIndex = -1;
_spline.addPoint(float3(10, 10, 0));
_spline.addPoint(float3(20, 100, 0));
_spline.addPoint(float3(100, 80, 0));
_spline.addPoint(float3(200, 100, 0));
_spline.addPoint(float3(300, 10, 0));
_spline.addPoint(float3(400, 150, 0));
for (float t = 0; t < 1.0f; t += 0.01f)
{
float3 pos = _spline.interpolate(t);
_array.push_back(pos);
}
for (int i = 0;i <