亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? splinedemoview.cpp

?? 三次樣條插值程序演示。在SplineDemoView.cpp文件中的函數BOOL CSplineDemoView::ZSpline3()和函數double Spline3(double)是實現三次樣條
?? CPP
字號:
// SplineDemoView.cpp : implementation of the CSplineDemoView class
//

#include "stdafx.h"
#include "SplineDemo.h"

#include "SplineDemoDoc.h"
#include "SplineDemoView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSplineDemoView

IMPLEMENT_DYNCREATE(CSplineDemoView, CView)

BEGIN_MESSAGE_MAP(CSplineDemoView, CView)
	//{{AFX_MSG_MAP(CSplineDemoView)
	ON_WM_LBUTTONDOWN()
	ON_WM_RBUTTONDOWN()
	ON_WM_LBUTTONDBLCLK()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSplineDemoView construction/destruction

CSplineDemoView::CSplineDemoView()
{
	// TODO: add construction code here

	N=0; NN=0;
	x[0]=0.0;
	h=NULL;
	u=NULL;
	v=NULL;
	z=NULL;
	spx=NULL;
	spy=NULL;

}

CSplineDemoView::~CSplineDemoView()
{
}

BOOL CSplineDemoView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CSplineDemoView drawing

void CSplineDemoView::OnDraw(CDC* pDC)
{
	CSplineDemoDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	pDC->TextOut(0,0,"3 Spline Demo: 三次樣條插值方法演示");
	pDC->TextOut(0,20,"click mouse,(from left to right): LBtn:set point, RBtn:done, Double click: clear rectangle.");
	GetClientRect(&DRect);
	DRect.top+=40;
	DRect.bottom-=20;
	DRect.left+=20;
	DRect.right-=20;
	pDC->Rectangle(DRect);

	CPoint point;
	if(N>0)
	{
		for(int i=1;i<=N;i++)
		{
			point.x=DRect.left+(int)(DRect.Width()*x[i]/100.0);
			point.y=DRect.bottom-(int)(DRect.Height()*y[i]/100.0);
			DrawPoint(point.x,point.y,4,pDC);
		}
		if(spx!=NULL&&spy!=NULL)
		{
			point.x=DRect.left+(int)(DRect.Width()*spx[0]/100.0);
			point.y=DRect.bottom-(int)(DRect.Height()*spy[0]/100.0);
			pDC->MoveTo(point);
			for(int j=1;j<NN;j++)
			{
				point.x=DRect.left+(int)(DRect.Width()*spx[j]/100.0);
				point.y=DRect.bottom-(int)(DRect.Height()*spy[j]/100.0);
				pDC->LineTo(point);
			}
		}
	}	
}

/////////////////////////////////////////////////////////////////////////////
// CSplineDemoView diagnostics

#ifdef _DEBUG
void CSplineDemoView::AssertValid() const
{
	CView::AssertValid();
}

void CSplineDemoView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CSplineDemoDoc* CSplineDemoView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSplineDemoDoc)));
	return (CSplineDemoDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CSplineDemoView message handlers

void CSplineDemoView::DrawPoint(int x,int y,int size,CDC* pdc)
{
	if(size<1)size=1;
	if(size>50)size=50;
	CRect rect;
	rect.top=y-size/2;
	rect.bottom=y+size/2;
	rect.left=x-size/2;
	rect.right=x+size/2;
	CBrush brush;
	brush.CreateSolidBrush(RGB(0,0,0));
	pdc->FillRect(rect,&brush);

}

void CSplineDemoView::OnLButtonDown(UINT nFlags, CPoint point) 
{//set x and y value ,N<100,N=0,...,99.  N is the sum of datas
	double x1;
	if(point.x>DRect.left&&point.x<DRect.right&&point.y>DRect.top&&point.y<DRect.bottom&&N<99)
	{
		x1=(point.x-DRect.left)*100.0/DRect.Width();//x=0.0--100.0
		if(x1>x[N])
		{	N++;			
			x[N]=x1;
			y[N]=(DRect.bottom-point.y)*100.0/DRect.Height();//y=0.0--100.0
		}
	}		
	CView::OnLButtonDown(nFlags, point);
	this->Invalidate();
}

void CSplineDemoView::OnRButtonDown(UINT nFlags, CPoint point) 
{
	CView::OnRButtonDown(nFlags, point);
	//do spline ,if N==0,no data,if N<3,no enough data
	if(ZSpline3()==TRUE)
	{
		NN=N*10+1;
		spx=(double*)new double[NN];
		spy=(double*)new double[NN];
		int i;
		for(i=0;i<NN;i++)
		{
			spx[i]=(x[N]-x[1])*i/(N*10)+x[1];
			spy[i]=Spline3(spx[i]);
		}
	}

	this->Invalidate();
}

void CSplineDemoView::OnLButtonDblClk(UINT nFlags, CPoint point) 
{

	N=0;
	spx=NULL;
	spy=NULL;
	
	this->Invalidate();
	CView::OnLButtonDblClk(nFlags, point);
}

BOOL CSplineDemoView::ZSpline3()
{
	if(N<=3)
	{
		MessageBox("The sum of data is less than 4");
		return FALSE;
	}
	double *b=NULL;
	h=(double*)new double[N+1];//下標從1 到N
	u=(double*)new double[N+1];
	v=(double*)new double[N+1];
	z=(double*)new double[N+1];
	b=(double*)new double[N+1];
	if(!(h&&u&&v&&z&&b))
	{
		MessageBox("內存分配失敗");
		return FALSE;
	}
	int i;
	for(i=1;i<N;i++)
	{
		h[i]=x[i+1]-x[i];
		b[i]=(y[i+1]-y[i])/h[i];
	}
	u[2]=2*(h[1]+h[2]);
	v[2]=6*(b[2]-b[1]);
	for(i=3;i<N;i++)
	{
		u[i]=2*(h[i-1]+h[i])-h[i-1]*h[i-1]/u[i-1];
		v[i]=6*(b[i]-b[i-1])-h[i-1]*v[i-1]/u[i-1];
	}
	z[N]=0;
	z[1]=0;
	for(i=N-1;i>=2;i--)
		z[i]=(v[i]-h[i]*z[i+1])/u[i];


	return TRUE;
}

double CSplineDemoView::Spline3(double xx)
{
	int i;
	double yy,x_ti,ti1_x;
	if(N>3&&h!=NULL&&z!=NULL)
	{
		i=1;
		if(xx<x[1])return 0.0;
		while(xx>=x[i+1]&&i+1<N)
			i++;
		if(xx>x[N])return 0.0;
		x_ti=xx-x[i];
		ti1_x=x[i+1]-xx;
		yy=z[i+1]*x_ti*x_ti*x_ti/(6*h[i]) + z[i]*ti1_x*ti1_x*ti1_x/(6*h[i])
			+ (y[i+1]/h[i]-h[i]*z[i+1]/6.0)*x_ti + (y[i]/h[i]-h[i]*z[i]/6.0)*ti1_x;	
	}
	else
		yy=0.0;
	return yy;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久综合网站| 亚洲午夜影视影院在线观看| 亚洲欧美一区二区三区极速播放| 国产在线播放一区| 日韩欧美国产午夜精品| 美女尤物国产一区| 日韩欧美在线123| 日韩精品久久理论片| 欧美美女bb生活片| 亚洲成人午夜电影| 欧美日韩aaaaa| 日本va欧美va精品发布| 欧美精三区欧美精三区| 日韩不卡免费视频| 26uuu欧美| 成人天堂资源www在线| 国产精品免费网站在线观看| 91原创在线视频| 亚洲国产成人精品视频| 91香蕉视频在线| 日韩精品亚洲专区| 国产婷婷一区二区| 色诱亚洲精品久久久久久| 丝瓜av网站精品一区二区 | 国产不卡在线播放| 亚洲另类色综合网站| 欧美日韩一区在线| 国产福利一区在线| 亚洲一区二区在线免费观看视频| 911精品国产一区二区在线| 国产一区二区精品久久| 亚洲一区二区三区四区在线 | 黄色日韩三级电影| 久久国产精品99久久人人澡| 亚洲一区二区精品视频| 日韩美女视频一区| 亚洲日本电影在线| 中文字幕av一区二区三区高| 国产区在线观看成人精品| 丁香一区二区三区| 国产一区二区91| 久草中文综合在线| 日本成人在线网站| 蜜乳av一区二区三区| 国产精品久久久久影院| 久久蜜桃香蕉精品一区二区三区| 日韩欧美电影一区| 欧美日韩精品系列| 欧美喷潮久久久xxxxx| 欧美日韩一区二区在线视频| 97久久久精品综合88久久| 国产99久久久国产精品潘金网站| 国产另类ts人妖一区二区| 国产一区二区三区四区五区入口| 精品在线免费观看| 高清不卡一区二区在线| 国产91丝袜在线18| 99久精品国产| 欧美高清dvd| 亚洲精品在线网站| 国产精品三级av| 夜夜精品视频一区二区| 亚洲第一成人在线| 精品写真视频在线观看| 国产麻豆日韩欧美久久| 一本到高清视频免费精品| 欧美精品一级二级| 国产日产欧美一区二区三区| 综合久久国产九一剧情麻豆| 亚欧色一区w666天堂| 国产最新精品精品你懂的| 91视频免费看| 精品国产91洋老外米糕| 亚洲少妇屁股交4| 蜜桃一区二区三区在线| 91丨porny丨首页| 国产日韩三级在线| 天堂va蜜桃一区二区三区 | 国产欧美日韩在线观看| 亚洲va韩国va欧美va| 久久精品国产99久久6| 欧美自拍偷拍一区| 中文在线资源观看网站视频免费不卡| 亚洲图片欧美视频| 9色porny自拍视频一区二区| 精品理论电影在线观看| 一区二区三区久久| 一本色道久久综合亚洲aⅴ蜜桃| 日韩精品中午字幕| 亚洲大尺度视频在线观看| av不卡在线播放| 久久精品亚洲精品国产欧美kt∨| 日韩中文字幕av电影| 欧美日韩一级二级三级| 亚洲制服丝袜av| 欧美精品自拍偷拍| 日本视频在线一区| 在线91免费看| 美女在线视频一区| 国产丝袜欧美中文另类| 成人免费毛片片v| 国产精品久久久久久久久图文区| 高清不卡在线观看| 国产精品福利一区| 91污在线观看| 日韩国产欧美三级| 2021中文字幕一区亚洲| 国产麻豆精品久久一二三| 久久久91精品国产一区二区精品| 国产资源在线一区| 国产精品区一区二区三| 91免费视频网| 免播放器亚洲一区| 日本一区二区三区四区在线视频 | 奇米四色…亚洲| 中文字幕国产一区二区| 91网址在线看| 激情文学综合丁香| 伊人一区二区三区| 欧美mv和日韩mv国产网站| av激情成人网| 免费成人在线观看| 一色屋精品亚洲香蕉网站| 91麻豆精品国产无毒不卡在线观看| 国内欧美视频一区二区| 国产伦精品一区二区三区在线观看 | 97久久精品人人做人人爽| 日韩影院精彩在线| 亚洲精选视频免费看| 欧美成人综合网站| 欧美日韩一区二区三区高清| 成人性生交大合| 日日噜噜夜夜狠狠视频欧美人| 亚洲天堂福利av| 精品少妇一区二区三区视频免付费| 99久久99久久精品国产片果冻 | 亚洲欧美日韩小说| 国产精品国产自产拍高清av| 久久久久久麻豆| 亚洲蜜臀av乱码久久精品| 日本一区二区三区免费乱视频| 欧美电影免费观看高清完整版在 | 成人av免费网站| 成人动漫在线一区| 懂色中文一区二区在线播放| 蜜桃久久久久久久| 极品美女销魂一区二区三区| 麻豆成人免费电影| 午夜精品国产更新| 美女网站视频久久| 国产一区二区看久久| 成人av动漫网站| 欧美影院一区二区三区| 777a∨成人精品桃花网| 日韩欧美色综合| 中文字幕高清一区| 一区二区三区不卡视频| 五月天激情综合| 风间由美中文字幕在线看视频国产欧美| 成人福利视频在线看| 欧美日韩精品一区二区三区 | 欧美一区二区三区小说| 久久久久亚洲蜜桃| 悠悠色在线精品| 国产最新精品免费| 欧美亚洲禁片免费| 国产欧美1区2区3区| 一区二区三区欧美| 丁香激情综合国产| 欧美一区二区黄| 国产精品人妖ts系列视频| 丝袜诱惑制服诱惑色一区在线观看| 国产美女精品人人做人人爽| 欧美性猛交xxxxxxxx| 一区二区中文视频| 亚洲国产aⅴ成人精品无吗| 国产精品小仙女| 精品欧美一区二区在线观看| 亚洲欧美日韩电影| 丰满少妇在线播放bd日韩电影| 欧美日韩mp4| 亚洲一区二区四区蜜桃| jlzzjlzz亚洲女人18| 久久亚洲一区二区三区四区| 婷婷久久综合九色综合伊人色| 成人综合婷婷国产精品久久蜜臀| 欧美日韩综合在线| 日本一区二区三区久久久久久久久不| 亚洲第一二三四区| 91在线观看一区二区| 久久综合九色欧美综合狠狠| 亚洲国产视频直播| 99久久精品情趣| 欧美日韩一区二区三区免费看| 亚洲九九爱视频| 91高清视频在线| 亚洲一区影音先锋| 欧美色视频一区| 亚洲国产视频a| 欧美剧在线免费观看网站|