资源简介
这是计算机图形学的代码包,包括:三维变换.实时动画,图形裁剪, 图形相交—相切, 消隐 ,帧动画, 真实感图形学。都能运行,对初学者很有用!
代码片段和文件信息
// baseClass.cpp: implementation of the CMyClass class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “三维变换.h“
#include “baseClass.h“
#include “三维变换View.h“
#include “math.h“
#define PI 3.141592654
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CbaseClass::CbaseClass()
{
ed=2000eh=100od=400hl=1ps=0;
}
CbaseClass::~CbaseClass()
{
}
// 此函数赋轴测图中立体上顶点的齐次坐标值
void CbaseClass::ReadWorkpiece()
{
X[1] = 0; Y[1] = 0; Z[1] = 0; C[1] = 1;
X[2] = 45; Y[2] = 0; Z[2] = 0; C[2] = 1;
X[3] = 45; Y[3] = 37; Z[3] = 0; C[3] = 1;
X[4] = 0; Y[4] = 37; Z[4] = 0; C[4] = 1;
X[5] = 0; Y[5] = 37; Z[5] = 45; C[5] = 1;
X[6] = 0; Y[6] = 0; Z[6] = 45; C[6] = 1;
X[7] = 12; Y[7] = 0; Z[7] = 45; C[7] = 1;
X[8] = 30; Y[8] = 0; Z[8] = 14; C[8] = 1;
X[9] = 45; Y[9] = 0; Z[9] = 14; C[9] = 1;
X[10] = 45; Y[10] = 37; Z[10] = 14; C[10] = 1;
X[11] = 30; Y[11] = 37; Z[11] = 14; C[11] = 1;
X[12] = 12; Y[12] = 37; Z[12] = 45; C[12] = 1;
X[13] = 12; Y[13]=21; Z[13]=45; C[13] = 1;
// X[14] = 22; Y[14]=31; Z[14]=27; C[14] = 1;
}
/***************************************************
* 此函数分别用于三个视图的投影变换,统一用变换后顶 *
* 点的三个坐标计算公式求其坐标值。这三个公式是由点 *
* 的齐次坐标乘以变换矩阵得来的。实际上每个视图投影 *
* 只有二个非零坐标需要计算求得,而另一个坐标是零勿 *
* 需计算。因此也可以根据三个不同视图的投影,分别采 *
* 用其投影后的二个坐标计算式来求坐标值。函数中可用 *
* 条件语句选择不同视图投影采用不同坐标计算式求值。 *
***************************************************/
void CbaseClass::Calculate(array2d B)
{
ReadWorkpiece();
for (int i = 1; i <= 12; ++i )
{
XT[i] =3*X[i]*B[1][1]+3*Y[i]*B[2][1]+3*Z[i]*B[3][1]+C[i]*B[4][1];
YT[i] =3*X[i]*B[1][2]+3*Y[i]*B[2][2]+3*Z[i]*B[3][2]+C[i]*B[4][2];
ZT[i] =3*X[i]*B[1][3]+3*Y[i]*B[2][3]+3*Z[i]*B[3][3]+C[i]*B[4][3];
}
}
// 此函数求轴测投影后点的坐标值
void CbaseClass::MCalculate(array2d B)
{
ReadWorkpiece();
for ( int i = 1; i <= 12; ++i )
{
XT[i] =3*X[i]*B[1][1]+3*Z[i]*B[2][1]+3*Y[i]*B[3][1]+C[i]*B[4][1];
YT[i] =3*X[i]*B[1][2]+3*Z[i]*B[2][2]+3*Y[i]*B[3][2]+C[i]*B[4][2];
ZT[i] =3*X[i]*B[1][3]+3*Z[i]*B[2][3]+3*Y[i]*B[3][3]+C[i]*B[4][3];
}
// 三个坐标计算公式由点的齐次坐标乘以轴测投影变换矩阵得来。
}
void CbaseClass::XCalculate(array2d B)
{int i;
Read();
for (i = 1;i<9;i++ )
{
ax[i] =XP[i]*B[1][1]+YP[i]*B[2][1]+ZP[i]*B[3][1]+CP[i]*B[4][1];
ay[i] =XP[i]*B[1][2]+YP[i]*B[2][2]+ZP[i]*B[3][2]+CP[i]*B[4][2];
az[i] =XP[i]*B[1][3]+YP[i]*B[2][3]+ZP[i]*B[3][3]+CP[i]*B[4][3];
}
}
void CbaseClass::Display()
{
CframeWnd* pWnd=(CframeWnd*)AfxGetApp()->m_pMainWnd;
CDC* pdc=pWnd->GetActiveView()->GetDC();
CRect rr;
::GetClientRect(pWnd->GetActiveView()->m_hWndrr);
DrawText()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4001 2004-12-16 17:06 cd\真实感图形学\BLine.cpp
文件 554 2004-11-28 23:11 cd\真实感图形学\BLine.h
文件 11561 2004-12-16 17:06 cd\真实感图形学\BRender.cpp
文件 983 2004-12-16 17:06 cd\真实感图形学\BRender.h
文件 13885 2004-12-16 16:55 cd\真实感图形学\BTriangle.cpp
文件 929 2004-11-28 23:11 cd\真实感图形学\BTriangle.h
文件 4762 2004-12-16 17:06 cd\真实感图形学\ColorBuffer.cpp
文件 1181 2004-11-28 23:11 cd\真实感图形学\ColorBuffer.h
文件 1718 2004-11-28 20:05 cd\真实感图形学\Edg.cpp
文件 1544 2004-11-28 23:11 cd\真实感图形学\Edge.cpp
文件 651 2004-12-16 17:06 cd\真实感图形学\Edge.h
文件 2 2004-11-28 20:28 cd\真实感图形学\Facet.asp
文件 1448 2004-11-28 23:11 cd\真实感图形学\Facet.cpp
文件 601 2004-11-28 23:11 cd\真实感图形学\Facet.h
文件 0 2004-11-28 20:07 cd\真实感图形学\FloatColor.asp
文件 1732 2004-11-28 23:11 cd\真实感图形学\FloatColor.cpp
文件 6276 2004-12-16 17:06 cd\真实感图形学\FloatColor.h
文件 3952 2004-12-16 17:06 cd\真实感图形学\Grphcs.h
文件 7958 2004-12-16 17:06 cd\真实感图形学\Img.h
文件 8989 2004-12-16 17:06 cd\真实感图形学\Lighting.cpp
文件 702 2004-11-28 23:11 cd\真实感图形学\Lighting.h
文件 4058 2004-11-28 23:11 cd\真实感图形学\LightObj.cpp
文件 930 2004-11-28 23:11 cd\真实感图形学\LightObj.h
文件 2622 2004-11-28 23:45 cd\真实感图形学\MainFrm.cpp
文件 1495 2004-11-28 23:15 cd\真实感图形学\MainFrm.h
文件 2874 2004-11-28 23:11 cd\真实感图形学\Material.cpp
文件 768 2004-11-28 23:11 cd\真实感图形学\Material.h
文件 15595 2004-12-16 17:06 cd\真实感图形学\Matrix3d.cpp
文件 2443 2004-11-28 23:11 cd\真实感图形学\Matrix3d.h
文件 9419 2004-11-28 23:11 cd\真实感图形学\ob
............此处省略323个文件信息
相关资源
- 网购商城源代码
- Linux内核2.4版源代码分析大全
- 电商平台源代码
- 网上商城源代码
- 电力项目源代码
- 山东大学计算机图形学实验二3D迷宫漫
- 工程计算源代码
- 基于stm32俄罗斯和贪吃蛇游戏keil源代
- delphi的glscene和源代码集合
- 安卓日记本源代码
- QGIS1.7.1源代码
- 《计算机图形学VC》源代码
- CMP-MVS开源代码
- 海康威视网络摄像机/硬盘录像机S
- 自己动手写网络爬虫pdf+源代码
- 仙剑1源代码开源
- 正点原子F103最全源代码
- EzCad二次开发源代码一
- EzCad二次开发源代码二
- 大型网盘系统 开源代码
- CMVS-PMVS-master
- 源代码
- 位置跟踪查询源代码
- 学OpenGL编3D游戏含源代码
- 小区物业管理系统含数据库文件源代
- 基于SSH的B2C购物网站源代码
- SSH登录与增删改查demo详解+源代码
- UCOSiii源码,含3.03与3.04
- 《iOS开发项目化入门教程》源代码
- 达内电信运营计费系统NETCTOSS源代码
评论
共有 条评论