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

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

?? fivepointview.cpp

?? 五點光滑法。給出五個相鄰的點
?? CPP
字號:
// FivePointView.cpp : implementation of the CFivePointView class
//

#include "stdafx.h"
#include "FivePoint.h"

#include "FivePointDoc.h"
#include "FivePointView.h"

#include "math.h"

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

/////////////////////////////////////////////////////////////////////////////
// CFivePointView

IMPLEMENT_DYNCREATE(CFivePointView, CView)

BEGIN_MESSAGE_MAP(CFivePointView, CView)
	//{{AFX_MSG_MAP(CFivePointView)
	ON_COMMAND(PDraw, OnPDraw)
	ON_COMMAND(PFlat, OnPFlat)
	ON_WM_LBUTTONDOWN()
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFivePointView construction/destruction

CFivePointView::CFivePointView()
{
	pointnum = 0;
	m_flag = false;
	m_isbegin = false;
	this->m_color = RGB(0,0,0);
	m_brush.CreateSolidBrush(m_color);
	// TODO: add construction code here

}

CFivePointView::~CFivePointView()
{
}

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

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CFivePointView drawing

void CFivePointView::OnDraw(CDC* pDC)
{
	CFivePointDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CFivePointView printing

BOOL CFivePointView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CFivePointView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CFivePointView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CFivePointView diagnostics

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CFivePointView message handlers

void CFivePointView::OnPDraw() 
{
	m_flag = true;
	this->Invalidate(true);
	Plist.clear();
	m_isbegin=false;
	pointnum = 0;
	// TODO: Add your command handler code here
	
}
	
void CFivePointView::OnPFlat() 
{
	

	

	list<CMypoint>::iterator	Phead = Plist.begin();
	list<CMypoint>::iterator	Pend = Plist.end();
	for(int i=2;Phead != Pend;i++){
		x[i] = (*Phead).x;
		y[i] = (*Phead).y;
		Phead++;}
	x[1] = x[2] - x[4] + x[3];
	x[0] = x[2] - x[4] + x[2];
	y[1] = (2*(y[2] - y[3])/(x[2] - x[3]) - (y[3] - y[4])/(x[3] - x[4]))*(x[1] - x[2]) + y[2];
	y[0] = (2*(y[1] - y[2])/(x[1] - x[2]) - (y[2] - y[3])/(x[2] - x[3]))*(x[0] - x[1]) + y[1];
	x[7] = x[6] - x[4] +x[5];
	x[8] = x[6] - x[4] +x[6];
	y[7] = (2*(y[6] - y[5])/(x[6] - x[5]) - (y[5] - y[4])/(x[5] - x[4]))*(x[7] - x[6]) + y[6];
	y[8] = (2*(y[7] - y[6])/(x[7] - x[6]) - (y[6] - y[5])/(x[6] - x[5]))*(x[8] - x[7]) + y[7];
	for(i=0;i<8;i++){
		m[i] = x[i+1] - x[i];
		n[i] = y[i+1] - y[i];
	}
	for(i=2;i<6;i++){
		getab(i);
		double du = (0.1)/fabs((x[i+1] - x[i]));
		CClientDC dc(this);
		for(double u = 0.0;u<=1;u=u+du){
		dc.SetPixel((a[0] + a[1]*u + a[2]*u*u + a[3]*u*u*u),
			(b[0] + b[1]*u + b[2]*u*u + b[3]*u*u*u),RGB(0,0,0));}
	}
	// TODO: Add your command handler code here
	
}

void CFivePointView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	CMypoint	pt;
	if(m_flag){
		if(!m_isbegin){

			if(pointnum!=5)
			{
			CClientDC dc(this);
			CBrush  *poldbrush = dc.SelectObject(&m_brush);
			dc.Ellipse(point.x-3,point.y-3,point.x+3,point.y+3);
			}
			pointnum++;
			pt.x = point.x;
			pt.y = point.y;
			pt.PointNumber = pointnum;
			if(pointnum < 6)
			Plist.push_back(pt);
			
			if(pointnum == 6){
			AfxMessageBox("只需要五個點!");
			m_isbegin = true;
			}
		}
	}
	// TODO: Add your message handler code here and/or call default
	
	CView::OnLButtonDown(nFlags, point);
}

void CFivePointView::getab(int i)
{
	double r;
	r = sqrt((x[i+1] - x[i])*(x[i+1] - x[i]) + (y[i+1] - y[i])*(y[i+1] - y[i]));
	a[0] = x[i];
	a[1] = r*getcos(i);
	a[2] = 3*(x[i+1] - x[i]) - r*(getcos(i+1) + 2*getcos(i));
	a[3] = -2*(x[i+1] - x[i]) + r*(getcos(i+1) + getcos(i));

	b[0] = y[i];
	b[1] = r*getsin(i);
	b[2] = 3*(y[i+1] - y[i]) - r*(getsin(i+1) + 2*getsin(i));
	b[3] = -2*(y[i+1] - y[i]) + r*(getsin(i+1) + getsin(i));
}

double CFivePointView::getcos(int i)
{
	double	m0;
	double	n0;
	double	w1;
	double	w2;
	w1 = m[i-2]*fabs(m[i]*n[i+1] - m[i+1]*n[i]);
	w2 = m[i+1]*fabs(m[i-2]*n[i-1] - m[i-1]*n[i-2]);
	m0 = m[i-1]*w1 + m[i]*w2;
	n0 = n[i-1]*w1 + n[i]*w2;
	return(m0/sqrt(m0*m0 +n0*n0));

}

double CFivePointView::getsin(int i)
{
	double	m0;
	double	n0;
	double	w1;
	double	w2;
	w1 = m[i-2]*fabs(m[i]*n[i+1] - m[i+1]*n[i]);
	w2 = m[i+1]*fabs(m[i-2]*n[i-1] - m[i-1]*n[i-2]);
	m0 = m[i-1]*w1 + m[i]*w2;
	n0 = n[i-1]*w1 + n[i]*w2;
	return(n0/sqrt(m0*m0 +n0*n0));
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产一区二区三区| 中文字幕日本不卡| 91视视频在线观看入口直接观看www | 亚洲欧美影音先锋| 欧美一区三区二区| 色婷婷久久综合| 风流少妇一区二区| 奇米影视在线99精品| 亚洲毛片av在线| 中文字幕av一区二区三区免费看 | 日韩欧美一区二区视频| 色婷婷亚洲一区二区三区| 国产激情一区二区三区桃花岛亚洲| 亚洲成人久久影院| 一区免费观看视频| 国产欧美视频在线观看| 日韩一区二区三| 欧美高清一级片在线| 色哟哟一区二区三区| av一本久道久久综合久久鬼色| 国产综合色产在线精品| 蜜桃在线一区二区三区| 日韩专区一卡二卡| 亚洲小说春色综合另类电影| 综合中文字幕亚洲| 国产欧美一区二区精品性色| 日韩精品一区二区三区三区免费| 欧美日韩激情一区| 欧美另类一区二区三区| 欧洲一区二区三区免费视频| av电影一区二区| 成人av在线观| 99国产精品久久久| 91麻豆蜜桃一区二区三区| 91小视频免费看| 97精品电影院| 在线观看三级视频欧美| 91国偷自产一区二区开放时间 | 欧美mv和日韩mv的网站| 91精品国产欧美一区二区成人| 欧美日韩夫妻久久| 欧美电影影音先锋| 制服丝袜成人动漫| 欧美一区二区精品久久911| 91麻豆精品国产91久久久久久| 69堂精品视频| 日韩精品一区二区三区视频| 欧美精品一区二区精品网| xfplay精品久久| 日本一二三四高清不卡| 亚洲国产精品成人综合 | 精品国产免费久久| 精品国产伦理网| 国产偷国产偷亚洲高清人白洁 | 裸体一区二区三区| 韩国女主播一区| 国产成人精品影视| 一本大道久久a久久精品综合| 在线免费一区三区| 91精品国产综合久久精品性色| 欧美一区二区精品| 欧美经典一区二区三区| 成人欧美一区二区三区黑人麻豆 | 丰满放荡岳乱妇91ww| av一二三不卡影片| 欧美视频一区在线| 欧美第一区第二区| 中文字幕第一区二区| 一区av在线播放| 免费在线观看日韩欧美| 国产乱码精品一品二品| 色综合久久综合网欧美综合网 | 日韩欧美国产午夜精品| 欧美激情一区不卡| 午夜视黄欧洲亚洲| 国产成人精品aa毛片| 色综合色综合色综合| 日韩欧美自拍偷拍| 亚洲三级在线观看| 久久成人av少妇免费| 99r精品视频| 日韩一区二区三区免费观看| 中国av一区二区三区| 天天影视网天天综合色在线播放| 国产成人午夜片在线观看高清观看| 91丨九色丨蝌蚪丨老版| 日韩精品一区二区三区中文精品 | 最新日韩在线视频| 免费观看久久久4p| 色呦呦国产精品| 久久久国产精品午夜一区ai换脸| 亚洲综合成人在线| 国产精品1区2区3区在线观看| 欧美性受xxxx黑人xyx性爽| 国产欧美一区在线| 日av在线不卡| 99re视频精品| 久久久噜噜噜久久人人看| 亚洲激情一二三区| 国产大陆精品国产| 欧美一级欧美三级在线观看| 亚洲欧美一区二区三区孕妇| 日韩不卡在线观看日韩不卡视频| hitomi一区二区三区精品| 日韩一区二区在线观看视频| 亚洲人成精品久久久久久 | 一本久久a久久精品亚洲| 精品国产一区二区三区久久影院| 亚洲欧美激情在线| 丰满少妇久久久久久久| 日韩欧美一区二区不卡| 亚洲电影视频在线| 色狠狠一区二区| 国产精品国产三级国产| 国产精品伊人色| 欧美变态口味重另类| 亚洲成人一区在线| 91国产精品成人| 亚洲欧美怡红院| jlzzjlzz亚洲日本少妇| 亚洲国产精品精华液2区45| 精品中文字幕一区二区小辣椒| 欧美日韩久久久久久| 亚洲精品欧美激情| 日本道精品一区二区三区| 国产精品成人网| 不卡av在线网| 国产精品国产馆在线真实露脸 | 一区二区三区精品在线| av亚洲精华国产精华| 中文字幕国产一区二区| 国产黄色精品视频| 欧美高清一级片在线观看| 国产风韵犹存在线视精品| 国产亚洲综合在线| 国产一区二区中文字幕| 欧美成人一区二区三区在线观看| 免费成人结看片| 欧美xxxxx裸体时装秀| 免费在线成人网| 日韩丝袜情趣美女图片| 麻豆精品久久精品色综合| 日韩一级完整毛片| 激情五月婷婷综合网| 亚洲精品在线免费观看视频| 久久99精品国产麻豆婷婷| 久久伊人蜜桃av一区二区| 国产精品一区二区在线观看网站| 欧美精彩视频一区二区三区| 不卡av免费在线观看| 一区二区三区中文免费| 欧美片网站yy| 精品一区二区三区在线观看| 国产日韩精品视频一区| 波多野结衣欧美| 亚洲综合色噜噜狠狠| 欧美精品aⅴ在线视频| 精油按摩中文字幕久久| 欧美极品另类videosde| 99久久精品免费精品国产| 亚洲综合精品久久| 日韩欧美成人一区| 成人午夜精品在线| 亚洲欧美电影一区二区| 欧美日韩成人一区二区| 麻豆精品在线观看| 国产精品久久综合| 欧美色综合久久| 免费成人在线观看视频| 欧美国产1区2区| 欧美日韩午夜在线视频| 国产一区二区三区蝌蚪| 成人欧美一区二区三区在线播放| 欧美猛男男办公室激情| 激情综合色丁香一区二区| 国产精品丝袜久久久久久app| 91麻豆国产香蕉久久精品| 日韩电影免费在线| 国产精品网站导航| 精品视频一区二区不卡| 精品综合久久久久久8888| 亚洲欧美偷拍卡通变态| 91精品欧美一区二区三区综合在 | 亚洲激情综合网| 欧美大度的电影原声| 91色婷婷久久久久合中文| 全国精品久久少妇| 中文字幕日韩一区| 精品国产免费人成电影在线观看四季 | 自拍偷拍欧美激情| 日韩欧美一区二区不卡| 一本到不卡免费一区二区| 久久99精品久久久| 亚洲国产一区二区三区青草影视| 久久色中文字幕| 欧美久久久久久久久| 色综合天天狠狠| 国产不卡一区视频| 日韩高清在线观看| 亚洲另类在线一区|