- 3
- 0
- 约3.56千字
- 约 8页
- 2017-09-06 发布于湖北
- 举报
1 在观察变换下,如何实现多面体网格显示(非消隐)?
在观察变换下,实现多面体网格显示包括以下步骤。
定义视点参数(R,theta, phi)(式6-44,P174)
例如:TR=1000,d=1000,Phi=30,Theta=60;
计算观察变换矩阵(式6-45至6-47)
InitParameter()
{
Tk[1]=sin(PI*Theta/180);
Tk[2]=sin(PI*Phi/180);
Tk[3]=cos(PI*Theta/180);
Tk[4]=cos(PI*Phi/180);
Tk[5]=Tk[2]*Tk[3];
Tk[6]=Tk[2]*Tk[1];
Tk[7]=Tk[4]*Tk[3];
Tk[8]=Tk[4]*Tk[1];
}
定义多面体的顶点表和面表
在view类.h文件中加全局变量声明:
CP3 V[nV];//nV顶点数
CFace F[nF];//nF面数
在view类.h文件最前面定义常量
#define nV 8
#define nF 6
在view类加入ReadVertex()和ReadFace()函数,将其定义改为要显示的多面体;
添加显示函数, 显示函数有算法如下
TR=1000;Phi=30;Theta=60;
InitParameter();
ReadVertex();
ReadFace();
For (iFace=0; iFacenF; iFace++)
{//对面的循环
(消隐判断加于此)
for (iVrtx=0; iVrtxF[iFace].vN; iVrtx++)
{//对面中顶点的循环,顶点号pIdx=F[iFace].vI[iVrtx];
//顶点坐标V[pIdx].x, V[pIdx].y, V[pIdx].z;
对每个顶点进行观察变换;
用变换结果的xy坐标画出每条边; }
画出最后一条边;
}
2 在观察变换下,如何实现多面体网格划分显示(非消隐)?
对曲面体两个参数离散化,作为循环变量,每变量相邻两组参数构成四个点,形成一个小四边形,曲面体被划分成多个小四边形;画出每个小四边形,则实现了曲面体的显示。
定义视点参数(R,theta, phi)(式6-44,P174)
TR=1000,d=1000,Phi=30,Theta=60;
(2)计算观察变换矩阵(式6-45至6-47)
//计算观察变换矩阵
Tk[1]=sin(PI*Theta/180);
Tk[2]=sin(PI*Phi/180);
Tk[3]=cos(PI*Theta/180);
Tk[4]=cos(PI*Phi/180);
Tk[5]=Tk[2]*Tk[3];
Tk[6]=Tk[2]*Tk[1];
Tk[7]=Tk[4]*Tk[3];
Tk[8]=Tk[4]*Tk[1];
曲面体显示
for (j=0;j180;j=j+5)//将参数alpha离散化,作为循环变量
{//将曲面体离散化,参数间隔为5度
a1=j*PI/180;//相邻两个alpha
a2=(j+5)*PI/180;
for (i=0;i360;i=i+5) //将参数beta离散化,作为循环变量
{
b1=i*PI/180;//相邻两个beta
b2=(i+5)*PI/180;
x[0]=R*sin(a1)*sin(b1);//根据曲面体方程计算出多四边形的四个顶点坐标,R为球体半径
y[0]=R*cos(a1);
z[0]=R*sin(a1)*cos(b1);
x[1]=R*sin(a2)*sin(b1);
y[1]=R*cos(a2);
z[1]=R*sin(a2)*cos(b1);
x[2]=R*sin(a2)*sin(b2);
y[2]=R*cos(a2);
z[2]=R*sin(a2)*cos(b2);
x[3]=R*sin(a1)*sin(b2);
y[3]=R*cos(a1);
z[3]=R*sin(a1)*cos(b2);
for (k=0;k4;k++)//进行观察变换
{
x1[k]=x[k]*Tk[3]-z[k]*Tk[1];//观察坐标系三维坐标
y1[k]=-x[k]*Tk[8]+y[k]*Tk[2]-z[k]*Tk[7];
z1[k]=-x[k]*Tk[6]-y[k]*Tk[4]-z[k]*Tk[5]+TR;
sx[k]=x1[k];
sy[k]=y1[k];
}
pDC-MoveTo(sx[0],sy[0]);
pDC-LineTo(sx[1],sy[1]);
pDC-LineTo(s
您可能关注的文档
- 企业领先四要素教案.docx
- 企业如何搭乘”互联网+“的顺风车教案.docx
- 互换性与技术测量(复习题)(1)(1)教案.docx
- 起重机司机考试试卷1教案.doc
- 起重机安装改造重大维修监督检验工作见证教案.docx
- 起重机械安全管理考试题教案.docx
- 起重机械操作规程教案.doc
- 气化炉喷嘴教案.docx
- 气瓶检验员培训目录教案.docx
- 集团公司财务自查教案.docx
- 《JBT 11683-2013锤片式工业饲料粉碎机》专题研究报告.pptx
- 《JBT 11717-2013液压传动 转向器用单路稳流分流阀》专题研究报告.pptx
- 《JBT 11724-2013数控磨床电气控制系统 技术条件》专题研究报告.pptx
- 《JBT 6551.2-2014木工平压两用刨床 第2部分:技术条件》专题研究报告.pptx
- 《JBT 4024-2014自动冷镦机 模腔尺寸》专题研究报告.pptx
- 《JBT 4279.2-2008漆包绕组线试验仪器设备检定方法 第2部分:直流电阻试验装置》专题研究报告.pptx
- 《JBT 13195-2017矿用履带式喷浆操作机》专题研究报告.pptx
- 《JBT 13170-2017固液混合有机垃圾挤压制浆设备》专题研究报告.pptx
- 《JBT 13199-2017重介质浅槽分选机》专题研究报告.pptx
- 《JBT 8825.7-2011惠氏螺纹刀具 第7部分:滚丝轮》专题研究报告.pptx
最近下载
- 2026中国建设银行远程智能银行中心客服代表社会招聘200人(广州20人)参考考试题库附答案解析.docx VIP
- 儿童身高管理.pptx VIP
- 2026中国建设银行远程智能银行中心客服代表社会招聘200人(广州20人)参考考试试题附答案解析.docx VIP
- 2026至未来5年中国冲压端子市场数据分析及竞争策略研究报告.docx
- 《电梯触摸屏操控终端技术要求》.docx VIP
- 上海大学继续教育市场营销网课答案更新版.pdf VIP
- 2026中国建设银行远程智能银行中心客服代表社会招聘200人(广州20人)备考考试试题及答案解析.docx VIP
- 2026中国建设银行远程智能银行中心客服代表社会招聘200人(广州20人)考试备考题库附答案解析.docx VIP
- 2021 年全国一级建造师考试执业资格考试法规-白金卷.docx VIP
- 中国燃料电池汽车产业发展白皮书(2025年).docx
原创力文档

文档评论(0)