• 大小: 3KB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2021-01-07
  • 语言: C/C++
  • 标签: BSpline  

资源简介

一个关于BSpline,三次拟合两点之间的曲线代码源码,里面有相关的程序接口

资源截图

代码片段和文件信息

#include “stdafx.h“
#include 
#include 
using namespace std;

/*
mousePoint 为鼠标点击的点的数组
linePoint 为计算后拟合曲线上的点,只要以这些点来画线就可以绘制出曲线
controlPoint 为计算后得到的理论控制点数组
*/

void B3Line( vector< POINT >& mousePoint vector< POINT >& linePoint vector< POINT >& controlPoint )
{
const int nPointCount = 5; // 在每一段曲线上要拟合出的点数,可以为10
    const int nMaxmousePtCount = 300; // 能够处理的鼠标点数为这个变理值减1
const int nMaxSiShu = nMaxmousePtCount + 5;

double d[nMaxSiShu] = { 0 };
double sishu[nMaxSiShu][nMaxSiShu] = { 0 }; // 用来保存方程系数和对应行的右值

double x[nMaxSiShu] = { 0 }; // 用来保存鼠标点的x坐标
double y[nMaxSiShu] = { 0 }; // 用来保存鼠标点的y坐标

double q0x = 0.0 q0y = 0.0qnx = 0.0 qny = 0.0;

int ik;


int nCtrlPtCount = mousePoint.size();     // 实际控制点数
if ( nCtrlPtC

评论

共有 条评论

相关资源