Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
DrawSysView.h
Package: 计算机图形学综合大程序.rar [view]
Upload User: taoguanmin
Upload Date: 2007-05-11
Package Size: 180k
Code Size: 5k
Category:
2D Graphic
Development Platform:
Visual C++
- // DrawSysView.h : interface of the CDrawSysView class
- //
- /////////////////////////////////////////////////////////////////////////////
- #if !defined(AFX_DRAWSYSVIEW_H__425C0345_B72D_45B7_9628_01D8E32F4E09__INCLUDED_)
- #define AFX_DRAWSYSVIEW_H__425C0345_B72D_45B7_9628_01D8E32F4E09__INCLUDED_
- #pragma warning(disable:4786)//禁止waring号为4786的warning消息
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- #include "SetDlg.h"
- #include "stdlib.h"
- #include "math.h"
- #include <list>
- #include <vector>
- enum DRAWSORT{DsNull,DsLine,DsCircle,DsManyBd,DsCutLine,DsBezier,DsStroke,DsText};//画图类型
- //直线
- struct LINE
- {
- POINT pStart;
- POINT pEnd;
- bool operator==(LINE l)
- {
- if(l.pStart.x==pStart.x && l.pStart.y==pStart.y && l.pEnd.x==pEnd.x && l.pEnd.y==pEnd.y)
- return 1;
- return 0;
- };
- };
- //圆
- struct CIRCLE
- {
- POINT pMid;//圆心
- int r; //半径
- };
- //文本
- struct TEXT
- {
- CString str;
- POINT p;
- };
- using namespace std;
- typedef vector<POINT> BEZIER;//Bezier曲线
- class CDrawSysView : public CView
- {
- protected: // create from serialization only
- CDrawSysView();
- DECLARE_DYNCREATE(CDrawSysView)
- // Attributes
- public:
- CDrawSysDoc* GetDocument();
- // Operations
- public:
- // Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CDrawSysView)
- public:
- virtual void OnDraw(CDC* pDC); // overridden to draw this view
- virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
- protected:
- virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
- virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
- virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
- //}}AFX_VIRTUAL
- // Implementation
- public:
- void Circle(long pcx,long pcy,int r,CDC *pDC);
- virtual ~CDrawSysView();
- #ifdef _DEBUG
- virtual void AssertValid() const;
- virtual void Dump(CDumpContext& dc) const;
- #endif
- protected:
- void Line_DDA(POINT p1,POINT p2,CDC *pDC);
- void Line_Bresenham(POINT p1,POINT p2,CDC *pDC);
- void Line(POINT p1,POINT p2,CDC *pDC);
- void Line(LINE l,CDC *pDC);
- void Line(long p1x,long p1y,long p2x,long p2y,CDC *pDC);
- void Circle(POINT pc,int r,CDC *pDC);
- void Circle(CIRCLE c,CDC *pDC);
- int GetDist(POINT p1,POINT p2);
- void CutLine(RECT rect,POINT& p1,POINT& p2);//剪切直线
- void CutLine(RECT rect,LINE& l);
- void Bezier(vector<POINT> vectorPoint,CDC *pDC);
- void Draw3DText(CString str,CRect rectText,int nHeight,int nWidth,int nWeight,BYTE bItalic,LPCTSTR lpszFacename,CDC *pDC);
- protected:
- DRAWSORT m_dsDrawSort; //画图类型
- DRAWLINESORT m_dlsDrawLSort;//画直线的方式
- POINT m_startPoint;//前点
- POINT m_endPoint; //后点
- POINT m_spManyBd; //多边形的第一个点
- bool m_bIsMouseDown;//鼠标是否在移动
- bool m_bIsFirstDone;//多边形的第一条边是否画完
- bool m_bIsDel;
- int m_iPenWidth; //画笔宽度
- long m_lPenColor; //画笔颜色
- long m_lBkColor; //背景颜色
- long m_lFillColor;//填充颜色
- list<LINE> m_listAllLine; //当前所有的直线
- list<CIRCLE> m_listAllCircle;//当前所有的圆
- list<BEZIER> m_listBezier; //当前所有的贝塞尔曲线
- vector<TEXT> m_vectorText; //当前所有文本
- BEZIER m_vectorCurBezier;//当前的贝塞尔曲线
- //光标
- HCURSOR m_hDLCursor;//直线
- HCURSOR m_hDCCursor;//圆
- HCURSOR m_hCLCursor;//剪切
- HCURSOR m_hDBCursor;//贝塞尔曲线
- HCURSOR m_hDTCursor;//文本
- HCURSOR m_hDSCursor;//随手画
- CSetDlg m_SetDlg;
- CStatusBar* m_pwndStatusBar;
- CEdit m_edtTextIn;
- // Generated message map functions
- protected:
- //{{AFX_MSG(CDrawSysView)
- afx_msg void OnLine();
- afx_msg void OnCircle();
- afx_msg void OnUpdateLine(CCmdUI* pCmdUI);
- afx_msg void OnUpdateCircle(CCmdUI* pCmdUI);
- afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
- afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
- afx_msg void OnMouseMove(UINT nFlags, CPoint point);
- afx_msg void OnDda();
- afx_msg void OnBresenham();
- afx_msg void OnSet();
- afx_msg void OnManybd();
- afx_msg void OnUpdateManybd(CCmdUI* pCmdUI);
- afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
- afx_msg void OnCut();
- afx_msg void OnUpdateCut(CCmdUI* pCmdUI);
- afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
- afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
- afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point);
- afx_msg void OnBezier();
- afx_msg void OnUpdateBezier(CCmdUI* pCmdUI);
- afx_msg void OnText();
- afx_msg void OnClear();
- afx_msg void OnStroke();
- afx_msg void OnUpdateStroke(CCmdUI* pCmdUI);
- afx_msg void OnUpdateText(CCmdUI* pCmdUI);
- afx_msg void OnTest();
- afx_msg void OnRandline();
- afx_msg void OnRefresh();
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
- };
- #ifndef _DEBUG // debug version in DrawSysView.cpp
- inline CDrawSysDoc* CDrawSysView::GetDocument()
- { return (CDrawSysDoc*)m_pDocument; }
- #endif
- /////////////////////////////////////////////////////////////////////////////
- //{{AFX_INSERT_LOCATION}}
- // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
- #endif // !defined(AFX_DRAWSYSVIEW_H__425C0345_B72D_45B7_9628_01D8E32F4E09__INCLUDED_)