计算机图形学立方体三维变换


// 02View.h: CMy02View 类的接口
//

#pragma once
#include"CFace.h"
#include"cp3.h"
#include"CTransform.h"
class CMy02View : public CView
{
protected: // 仅从序列化创建
	CMy02View() noexcept;
	DECLARE_DYNCREATE(CMy02View)

// 特性
public:
	CMy02Doc* GetDocument() const;

// 操作
public:
	CRect rect;
	cp3 V[8];
	CFace F[6];
	CTransform T;
	void SetPoint();
	void SetFace();
	void DrawObject(CDC* pDC);
	cp2 Project(cp3);
// 重写
public:
	virtual void OnDraw(CDC* pDC);  // 重写以绘制该视图
	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);

// 实现
public:
	virtual ~CMy02View();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// 生成的消息映射函数
protected:
	afx_msg void OnFilePrintPreview();
	afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
};

#ifndef _DEBUG  // 02View.cpp 中的调试版本
inline CMy02Doc* CMy02View::GetDocument() const
   { return reinterpret_cast<CMy02Doc*>(m_pDocument); }
#endif


// 02View.cpp: CMy02View 类的实现
//

#include "pch.h"
#include "framework.h"
// SHARED_HANDLERS 可以在实现预览、缩略图和搜索筛选器句柄的
// ATL 项目中进行定义,并允许与该项目共享文档代码。
#ifndef SHARED_HANDLERS
#include "02.h"
#endif

#include "02Doc.h"
#include "02View.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CMy02View

IMPLEMENT_DYNCREATE(CMy02View, CView)

BEGIN_MESSAGE_MAP(CMy02View, CView)
	// 标准打印命令
	ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CMy02View::OnFilePrintPreview)
	ON_WM_CONTEXTMENU()
	ON_WM_RBUTTONUP()
	ON_WM_KEYDOWN()
END_MESSAGE_MAP()

// CMy02View 构造/析构

CMy02View::CMy02View() noexcept
{
	// TODO: 在此处添加构造代码
	SetPoint();
	SetFace();
    T.SetMat(V, 8);
}

CMy02View::~CMy02View()
{
}

BOOL CMy02View::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: 在此处通过修改
	//  CREATESTRUCT cs 来修改窗口类或样式

	return CView::PreCreateWindow(cs);
}

// CMy02View 绘图

void CMy02View::OnDraw(CDC* pDC)
{
	CMy02Doc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if (!pDoc)
		return;
	
	GetClientRect(&rect);//获得客户区矩形
	pDC->SetMapMode(MM_ANISOTROPIC);//设置映射模式
	pDC->SetWindowExt(rect.Width(), rect.Height());//设置窗口
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值