这个软件很不错

源代码在线查看: 椭圆算法view.cpp

软件大小: 2 K
上传用户: red2years
关键词: 软件
下载地址: 免注册下载 普通下载 VIP

相关代码

				// 椭圆算法View.cpp : implementation of the CMyView class
				//
				
				#include "stdafx.h"
				#include "椭圆算法.h"
				
				#include "椭圆算法Doc.h"
				#include "椭圆算法View.h"
				#include 
				
				#ifdef _DEBUG
				#define new DEBUG_NEW
				#undef THIS_FILE
				static char THIS_FILE[] = __FILE__;
				#endif
				
				/////////////////////////////////////////////////////////////////////////////
				// CMyView
				
				IMPLEMENT_DYNCREATE(CMyView, CView)
				
				BEGIN_MESSAGE_MAP(CMyView, CView)
					//{{AFX_MSG_MAP(CMyView)
						// NOTE - the ClassWizard will add and remove mapping macros here.
						//    DO NOT EDIT what you see in these blocks of generated code!
					//}}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()
				
				/////////////////////////////////////////////////////////////////////////////
				// CMyView construction/destruction
				
				CMyView::CMyView()
				{
					// TODO: add construction code here
				
				}
				
				CMyView::~CMyView()
				{
				}
				
				BOOL CMyView::PreCreateWindow(CREATESTRUCT& cs)
				{
					// TODO: Modify the Window class or styles here by modifying
					//  the CREATESTRUCT cs
				
					return CView::PreCreateWindow(cs);
				}
				
				/////////////////////////////////////////////////////////////////////////////
				// CMyView drawing
				
				
				void CMyView::OnDraw(CDC* pDC)
				{
					CMyDoc* pDoc = GetDocument();
					ASSERT_VALID(pDoc);
					// TODO: add draw code for native data here
					int x,y,a=200,b=100,d,xp,yp,squarea,squareb;
					int color=(000,000,255);
					int x0=200,y0=150;
					squarea=a*a;squareb=b*b;
					xp=(int)(0.5+(float)squarea/sqrt((float)(squarea+squareb)));
					yp=(int)(0.5+(float)squareb/sqrt((float)(squarea+squareb)));
					x=0;
					y=b;
					d=4*(squareb-squarea*b)+squarea;
					pDC->SetPixel(x+x0,y+y0,color);
					pDC->SetPixel(-x+x0,y+y0,color);
					pDC->SetPixel(-x+x0,-y+y0,color);
					pDC->SetPixel(x+x0,-y+y0,color);
				
					while (x					{
						if (d						{
							d+=4*squareb*(2*x+3);
						}
						else
						{
							d+=4*squareb*(2*x+3)-8*squarea*(y-1);
							y--;
						}
						x++;
						pDC->SetPixel(x+x0,y+y0,color);
						pDC->SetPixel(-x+x0,y+y0,color);
						pDC->SetPixel(-x+x0,-y+y0,color);
						pDC->SetPixel(x+x0,-y+y0,color);
					}
					x=a;
					y=0;
					d=4*(squarea-a*squareb)+squareb;
					pDC->SetPixel(x+x0,y+y0,color);
					pDC->SetPixel(-x+x0,y+y0,color);
					pDC->SetPixel(-x+x0,-y+y0,color);
					pDC->SetPixel(x+x0,-y+y0,color);
					while (y					{
						if (d						{
							d+=4*squarea*(2*y+3);
							
						}
						else
						{
							d+=4*squarea*(2*y+3)-8*squareb*(x-1);
							x--;
						}
						y++;
						pDC->SetPixel(x+x0,y+y0,color);
						pDC->SetPixel(-x+x0,y+y0,color);
						pDC->SetPixel(-x+x0,-y+y0,color);
						pDC->SetPixel(x+x0,-y+y0,color);
					}
				
				
				}
				
				/////////////////////////////////////////////////////////////////////////////
				// CMyView printing
				
				BOOL CMyView::OnPreparePrinting(CPrintInfo* pInfo)
				{
					// default preparation
					return DoPreparePrinting(pInfo);
				}
				
				void CMyView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
				{
					// TODO: add extra initialization before printing
				}
				
				void CMyView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
				{
					// TODO: add cleanup after printing
				}
				
				/////////////////////////////////////////////////////////////////////////////
				// CMyView diagnostics
				
				#ifdef _DEBUG
				void CMyView::AssertValid() const
				{
					CView::AssertValid();
				}
				
				void CMyView::Dump(CDumpContext& dc) const
				{
					CView::Dump(dc);
				}
				
				CMyDoc* CMyView::GetDocument() // non-debug version is inline
				{
					ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyDoc)));
					return (CMyDoc*)m_pDocument;
				}
				#endif //_DEBUG
				
				/////////////////////////////////////////////////////////////////////////////
				// CMyView message handlers
							

相关资源