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

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

?? neichaview.cpp

?? 根據已知點繪擬合出附近點的高程
?? CPP
字號:
// NeiChaView.cpp : implementation of the CNeiChaView class
//

#include "stdafx.h"
#include "NeiCha.h"

#include "NeiChaDoc.h"
#include "NeiChaView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CNeiChaView

IMPLEMENT_DYNCREATE(CNeiChaView, CView)

BEGIN_MESSAGE_MAP(CNeiChaView, CView)
	//{{AFX_MSG_MAP(CNeiChaView)
	ON_COMMAND(ID_SETCENTER, OnSetcenter)
	ON_WM_MOUSEMOVE()
	ON_COMMAND(ID_COMPUTE, OnCompute)
	//}}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()

/////////////////////////////////////////////////////////////////////////////
// CNeiChaView construction/destruction

CNeiChaView::CNeiChaView()
{
	// TODO: add construction code here
	m_knowPX[0]=102;
	m_knowPX[1]=109;
	m_knowPX[2]=105;
	m_knowPX[3]=103;
	m_knowPX[4]=108;
	m_knowPX[5]=105;
	m_knowPX[6]=115;
	m_knowPX[7]=118;
	m_knowPX[8]=116;
    m_knowPX[9]=113;
	m_knowPY[0]=110;
	m_knowPY[1]=113;
	m_knowPY[2]=115;
	m_knowPY[3]=103;
	m_knowPY[4]=105;
	m_knowPY[5]=108;
	m_knowPY[6]=104;
	m_knowPY[7]=108;
	m_knowPY[8]=113;
	m_knowPY[9]=118;
	m_knowPZ[0]=15;
    m_knowPZ[1]=18;
	m_knowPZ[2]=19;
	m_knowPZ[3]=17;
	m_knowPZ[4]=21;
	m_knowPZ[5]=15;
	m_knowPZ[6]=20;
	m_knowPZ[7]=15;
	m_knowPZ[8]=17;
	m_knowPZ[9]=22;
	/*CDC *pDC=GetDC();
    CPen newpen1(PS_SOLID,1,RGB(0,255,0));
	CPen *mypen=pDC->SelectObject(&newpen1);
	for(int i=0;i<10;i++)
	{
	  pDC->MoveTo(m_knowPX[i],m_knowPY[i]);
	  pDC->LineTo(m_knowPX[i],m_knowPY[i]);
	}*/
}
/********************************************************************
函數名:make_M
傳入數據:以P點為中心的已知點數據X,Y,Z
得到數據:曲面擬合的系數X*X,XY,Y*Y,X,Y,-1
作用:獲得數組M
*********************************************************************/
void CNeiChaView::make_M(double arrX[10],double arrY[10],double arrZ[10])
{
	for(int i=0;i<10;i++)
	{
		m_M[i][0]=arrX[i]*arrX[i];
		m_M[i][1]=arrX[i]*arrY[i];
		m_M[i][2]=arrY[i]*arrY[i];
		m_M[i][3]=arrX[i];
		m_M[i][4]=arrY[i];
		m_M[i][5]=1;
	}
}
void CNeiChaView::Get_TM(double arr[10][6])
{
	for(int i=0;i<10;i++)
		for(int j=0;j<6;j++)
			m_TM[j][i]=m_M[i][j];
}
void CNeiChaView::computeP(double arr1[10],double arr2[10])
{
	for(int i=0;i<10;i++)
		for(int j=0;j<10;j++)
		{
			if(i==j)
            {
				m_P[i][j]=(arr1[j]*arr1[j]+arr2[j]*arr2[j]);
				m_P[i][j]=1.0/m_P[i][j];
			}
			else 
			m_P[i][j]=0.0;
		}
}
void CNeiChaView::MultMTxP(double MT[6][10],double P[10][10])
{
	for(int i=0;i<6;i++)
	{   
		
		for(int j=0;j<10;j++)
		{    
			m_MTP[i][j]=0.0;
			for (int k=0;k<10;k++)
				m_MTP[i][j]+=MT[i][k]*P[k][j];
		}
	}
}
void CNeiChaView::MultMTPxM(double arr1[6][10],double arr2[10][6])
{
	for(int i=0;i<6;i++)
	{
		for(int j=0;j<6;j++)
		{
			m_MTPM[i][j]=0.0;
			for(int k=0;k<10;k++)
				m_MTPM[i][j]+=arr1[i][k]*arr2[k][j];
		}
	}
}
/**********************************************************
以下程序實現矩陣求逆,數組nis[]標記交換過程中的行數,njs[]標
記交換過程的列數,用高斯全選主元法,用d做中間變量,p做最大主元素
數組nis[]標記行位置,njs[]標記列位置
	***********************************************************/
void CNeiChaView::make_Re(int demsion,double matx[6][6])
{	
	int nis[10],njs[10];
 int i,j,k;
 double d,p=0;
 /*選出最大的元素*/
 for(k=0;k<demsion;k++)
 { 
  d=0.0;
  for(i=k;i<demsion;i++)
  {
   for(j=k;j<demsion;j++)
   {
    p=fabs(matx[i][j]);
   if(p>d)
   {d=p;nis[k]=i;njs[k]=j;}
   }
  // if (d+1.0==1.0)
           //return(0);
  }
  /*實現行列交換,使最大元素到主元位置*/
   
   if(nis[k]!=k)
   {
    for(j=0;j<demsion;j++)
    {p=matx[k][j];matx[k][j]=matx[nis[k]][j];matx[nis[k]][j]=p;}
   }
   if(njs[k]!=k)
   {
    for(i=0;i<demsion;i++)
    {p=matx[i][k];matx[i][k]=matx[i][njs[k]];matx[i][njs[k]]=p;}
   }    
   matx[k][k]=1.0/matx[k][k];
   for(j=0;j<demsion;j++)
    if(j!=k) 
     matx[k][j]=matx[k][j]*matx[k][k];
    for(i=0;i<demsion;i++)
  if(i!=k){
     for(j=0;j<demsion;j++)
      if(j!=k)
   {matx[i][j]=matx[i][j]-matx[i][k]*matx[k][j];}
  }
    
      for(i=0;i<demsion;i++)
       if(i!=k)
        matx[i][k]=(-1)*matx[i][k]*matx[k][k];
       
 }
 /*調整恢復行列次序*/
 for(k=demsion-1;k>=0;k--)
 {
  if(njs[k]!=k)
  
   for(j=0;j<demsion;j++)
   {p=matx[k][j];matx[k][j]=matx[njs[k]][j];matx[njs[k]][j]=p;}
  
   if(nis[k]!=k)
   
    for(i=0;i<demsion;i++){p=matx[i][k];matx[i][k]=matx[i][nis[k]];matx[i][nis[k]]=p;}
   
 }
	for(i=0;i<demsion;i++)
		for(j=0;j<demsion;j++)
			m_ReM[i][j]=matx[i][j];
}
void CNeiChaView::GetX()
{
	
	double arr[6][10];
	int i,j,k;
	/*input.DoModal();
	UpdateData(true);
	m_PX=input.m_Px;
	m_PY=input.m_Py;
	UpdateData(false);*/
	for(i=0;i<10;i++)
    {
		m_ppx[i]=m_knowPX[i]-m_PX;
		m_ppy[i]=m_knowPY[i]-m_PY;
		
	}
	make_M(m_ppx,m_ppy,m_ppz);
	computeP(m_ppx,m_ppy);
	Get_TM(m_M);
	MultMTxP(m_TM,m_P);
	MultMTPxM(m_MTP,m_M);
	make_Re(6,m_MTPM);
	for (i=0;i<6;i++)
	{
		for (j=0;j<10;j++)
		{
			arr[i][j]=0.0;
			for(k=0;k<6;k++)
				arr[i][j]+=m_ReM[i][k]*m_MTP[k][j];
		}
	}
	for(i=0;i<6;i++)
	{
		m_X[i]=0.0;
		
			for(k=0;k<10;k++)
				m_X[i]+=arr[i][k]*m_knowPZ[k];
	
	}
	m_PZ=m_X[5];
}
CNeiChaView::~CNeiChaView()
{
}

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

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CNeiChaView drawing

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

/////////////////////////////////////////////////////////////////////////////
// CNeiChaView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CNeiChaView diagnostics

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CNeiChaView message handlers

void CNeiChaView::OnSetcenter() 
{
	// TODO: Add your command handler code here
	
	CDC *pDC=GetDC();
    CPen newpen1(PS_SOLID,1,RGB(0,255,0));
	CPen newpen2(PS_SOLID,10,RGB(255,0,0));
	CPen *mypen1=pDC->SelectObject(&newpen1);
	for(int j=0;j<10;j++)
	{
		//pDC->MoveTo(m_knowPX[j],m_knowPY[j]);
		//pDC->LineTo(m_knowPX[j],m_knowPY[j]);
		pDC->SetPixel(CPoint(m_knowPX[j],m_knowPY[j]),RGB(255,0,0));
	}
	CPen *mypen=pDC->SelectObject(&newpen2);
	input.DoModal();
    UpdateData(true);
	m_PX=input.m_Px;
	m_PY=input.m_Py;
	UpdateData(false);
	for(int i=0;i<10;i++)
    {
		m_ppx[i]=m_knowPX[i]-m_PX;
		m_ppy[i]=m_knowPY[i]-m_PY;
		//pDC->MoveTo(m_ppx[i],m_ppy[i]);
		//pDC->LineTo(m_ppx[i],m_ppy[i]);
		pDC->SetPixel(CPoint(m_ppx[i]+200,m_ppy[i]+200),RGB(0,255,0));
	}
}

void CNeiChaView::OnMouseMove(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CString str;
	CMainFrame *pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;
	//獲取狀態欄的指針
	CStatusBar *pStatus=&pFrame->m_wndStatusBar;
	//CMoPoint mapPt(m_map.ToMapPoint(X,Y));
	if(pStatus)
	{
		str.Format("坐標x=%f",point.x);//顯示x坐標
		pStatus->SetPaneText(1,str);
		str.Format("坐標y=%f",point.y);//顯示y坐標
		pStatus->SetPaneText(2,str);
	}
	
	CView::OnMouseMove(nFlags, point);
}

void CNeiChaView::OnCompute() 
{
	// TODO: Add your command handler code here
	CDC *pDC=GetDC();
	CString expr,expr1,expr2,expr3,expr4,expr5,expr6;
	GetX();
	expr.Format("'P='%f",m_PZ);
	expr1.Format("'A='%f",m_X[0]);
	expr2.Format("'B='%f",m_X[1]);
	expr3.Format("'C='%f",m_X[2]);
	expr4.Format("'D='%f",m_X[3]);
	expr5.Format("'E='%f",m_X[4]);
	expr6.Format("'F='%f",m_X[5]);
	pDC->TextOut(200,200,expr);
	pDC->TextOut(200,220,expr1);
	pDC->TextOut(200,240,expr2);
	pDC->TextOut(200,260,expr3);
	pDC->TextOut(200,280,expr4);
	pDC->TextOut(200,300,expr5);
	pDC->TextOut(200,320,expr6);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产亚洲欧美成人综合网| 久久久亚洲午夜电影| 综合电影一区二区三区 | 国产精品国产自产拍在线| 国产乱码精品一区二区三| 久久先锋资源网| 99re这里都是精品| 亚洲国产人成综合网站| 日韩手机在线导航| 国产高清精品网站| 亚洲va欧美va人人爽| 国产午夜精品一区二区三区四区| 99re这里只有精品6| 91国产丝袜在线播放| 日韩电影一区二区三区四区| 久久免费偷拍视频| 中文欧美字幕免费| 91麻豆精品久久久久蜜臀| 国产高清成人在线| 99国产精品久久久久| 色综合久久久久综合体桃花网| 秋霞成人午夜伦在线观看| 亚洲日本在线看| 亚洲丰满少妇videoshd| 美女视频一区二区| 亚洲综合在线视频| 国产亚洲成年网址在线观看| 国产精品私人影院| 一区二区三区四区激情| 免费在线观看日韩欧美| 国产99精品国产| 久久99精品国产麻豆婷婷洗澡| 亚洲日本护士毛茸茸| 日韩1区2区日韩1区2区| 国产成人av电影在线观看| 欧美性猛交xxxxxx富婆| 白白色亚洲国产精品| 国产成人免费网站| 欧美日韩在线播| 欧美日韩中文另类| 久久久不卡影院| 亚洲国产精品久久人人爱| 高清成人在线观看| 欧美日韩第一区日日骚| 欧美视频一二三区| 欧美高清在线视频| **性色生活片久久毛片| 国产精品你懂的在线欣赏| 亚洲高清免费视频| 9人人澡人人爽人人精品| 69成人精品免费视频| 亚洲欧美日韩中文播放| 亚洲综合久久久| 亚洲高清免费在线| 成人免费黄色大片| 99在线精品观看| 精品国产乱码久久| 欧美国产日韩a欧美在线观看| 日本vs亚洲vs韩国一区三区| 欧美怡红院视频| 亚洲裸体在线观看| 亚洲视频一区二区在线观看| 日本成人中文字幕在线视频| 欧美性一级生活| 一区二区成人在线观看| 9人人澡人人爽人人精品| 欧美国产1区2区| 国产电影一区二区三区| 久久久高清一区二区三区| 久久99国产精品久久99| 日韩一级二级三级| 蜜臀久久99精品久久久画质超高清| 91成人网在线| 亚洲国产日韩综合久久精品| 色吊一区二区三区| 亚洲人成网站精品片在线观看| 成人v精品蜜桃久久一区| 欧美韩日一区二区三区| 成人黄页在线观看| 亚洲视频你懂的| 色偷偷88欧美精品久久久| 亚洲天堂成人网| 欧美综合亚洲图片综合区| 精品成人免费观看| 激情亚洲综合在线| 欧美午夜精品电影| 亚洲成人黄色小说| 欧美成人猛片aaaaaaa| 亚洲精品美腿丝袜| 欧美视频一区在线观看| 午夜精品一区在线观看| 国产成人综合亚洲网站| 国产精品视频一二三区| 欧美性做爰猛烈叫床潮| 麻豆极品一区二区三区| 国产亚洲1区2区3区| 99久久精品一区二区| 亚洲18色成人| 国产三级一区二区| 91久久人澡人人添人人爽欧美| 丝袜美腿成人在线| 在线精品视频免费播放| 日本怡春院一区二区| 国产欧美日产一区| 国内久久精品视频| 国产精品久久久久9999吃药| 欧美体内she精高潮| 久久精品国产一区二区三| 欧美猛男gaygay网站| 亚洲情趣在线观看| 538在线一区二区精品国产| 国产suv一区二区三区88区| 亚洲一级二级三级| 久久久久九九视频| 欧美电影影音先锋| 不卡高清视频专区| 美女在线视频一区| 亚洲女同一区二区| 久久婷婷国产综合国色天香 | 亚洲理论在线观看| 欧美成人video| 在线精品国精品国产尤物884a| 国产在线一区观看| 日一区二区三区| 亚洲精品成人悠悠色影视| 久久综合久久久久88| 欧美日韩国产首页| 91免费视频大全| 一区二区三区在线视频观看| 久久久久久97三级| 日韩精品综合一本久道在线视频| 免费的成人av| 亚洲午夜在线电影| 国产精品嫩草久久久久| 日韩欧美中文字幕公布| 欧美日韩你懂的| 91美女在线观看| 成人av在线电影| 成人国产精品免费观看| 国产激情一区二区三区| 久久精品国产久精国产| 日本v片在线高清不卡在线观看| 亚洲一区二区偷拍精品| 亚洲精品高清在线| 亚洲精品国产精华液| 综合在线观看色| 国产精品盗摄一区二区三区| 欧美国产乱子伦 | 日韩一级片在线观看| 欧美午夜理伦三级在线观看| 不卡的av电影在线观看| jizzjizzjizz欧美| 成人97人人超碰人人99| 91丨porny丨国产入口| 91在线小视频| 色婷婷国产精品久久包臀| 成人黄色免费短视频| 99精品国产热久久91蜜凸| 99视频在线精品| 欧美色图第一页| 91精品久久久久久久99蜜桃 | 国产尤物一区二区在线| 最新热久久免费视频| 日韩一区在线看| 一区二区三国产精华液| 五月激情丁香一区二区三区| 免费观看30秒视频久久| 国产精品一区二区在线观看网站| 韩国精品久久久| eeuss国产一区二区三区| a4yy欧美一区二区三区| 欧美午夜精品一区二区蜜桃| 欧美一区二区免费| 在线欧美一区二区| 日韩亚洲欧美在线观看| 精品处破学生在线二十三| 中文字幕中文字幕一区| 亚洲成人三级小说| 国产精品一区二区在线观看网站| av电影一区二区| 91精品国产综合久久精品图片| 精品999久久久| 亚洲精品第一国产综合野| 美女一区二区视频| 91在线观看高清| 日韩视频免费直播| 国产精品成人网| 日日骚欧美日韩| 不卡视频一二三四| 制服丝袜av成人在线看| 国产日韩欧美综合在线| 亚洲超丰满肉感bbw| 国产精品一区专区| 欧美日韩国产影片| 国产日韩欧美不卡在线| 日韩国产欧美在线视频| 99久久精品情趣| 国产亚洲欧洲一区高清在线观看| 亚洲另类色综合网站| 国产成人av一区二区三区在线|