- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单个三位形体的消隐代码-MATLAB
六、单个三维形体的消隐
%c9_Test.m文件,这是主文件
clear all;
clc;
MainMenu();
%DrawForm.m文件,绘制三维形体的指定表面
function DrawForm(MF,MS,View)
%绘制在给定的视线矢量下多面体MF的所有可见面
%MF为函数GetMultiForm的返回值
%MS(i).MOIS为在视线矢量View(i,:)下的所有可见面索引集合
%检测参数是否合法
if isempty(MF)
msgbox(多面体对象为空!);
return;
end
if isempty(MF.PS)
msgbox(多面体的顶点集为空!);
return;
end
if isempty(MF.FOS)
msgbox(多面体的面对象集为空!);
return;
end
if isempty(MS)
msgbox(可见面索引集合为空!);
return ;
end
Len=length(MS);
N1=round(sqrt(Len));
N2=ceil(sqrt(Len));
PS=MF.PS;
%
Len;
N2;
PS;
%
figure();
%grid on;
% axis square;
%hold on;
for i=1:Len
subplot(N1,N2,i);
%figure();
hold on;
%获取即将绘制的可见面索引集合
MIS=MS(i).MOIS;
%
%MIS;
%
grid on;
%axis square;
for k=1:length(MIS)
%绘制第k个可见面
%获取第k个可见面的顶点序列
PI=MF.FOS(MIS(k)).PIS;
%开始绘制面线
for j=1:length(PI)-1
PLine=[PS(PI(j),:);PS(PI(j+1),:)];
%
%PLine;
%
plot3(PLine(:,1),PLine(:,2),PLine(:,3),-r,LineWidth,3);
%plot3(PX,PY,PZ,-r,LineWidth,2);
end
PLine=[PS(PI(length(PI)),:);PS(PI(1),:)];
plot3(PLine(:,1),PLine(:,2),PLine(:,3),-r,LineWidth,3);
end
hold off;
view(View(i,:));
title(strcat(视线矢量为S=(,num2str(View(i,1)),,,num2str(View(i,2)),,,num2str(View(i,3)),)));
end
%hold off;
end
%GetInSightForm.m文件,计算三维形体的朝前面
function [MIS]=GetInSightForm(MF,View)
%MF多面体数据对象,该参数必须是GetMultiForm函数的返回值,View是视线矢量,MOIS是朝前面的索引集合
%本函数计算在指定视线矢量下的所有朝前面的面索引
%
%检测参数是否合法
MIS.MOIS=[];
if isempty(MF)
msgbox(多面体对象为空!);
return;
end
if isempty(MF.PS)
msgbox(多面体的顶点集为空!);
return;
end
if isempty(MF.FOS)
msgbox(多面体的面对象集为空!);
return;
end
if length(View(1,:))3
msgbox(视线矢量值残缺!);
return;
end
%开始计算
View=View(:,[1:3]);
%读取多面体对象的面顶点序列集合与顶点集合
FS=MF.FOS;
PS=MF.PS;
for w=1:length(View(:,1))
%将View矢量转化为列向量
S=View(w,:);
MOIS=[];
for k=1:length(FS)
%获取当前面顶点序列集合
PI=FS(k).PIS;
%计算当
您可能关注的文档
- 北五味子的液相色谱指纹图谱的建立.pdf
- 北京市残疾儿童康复救助定点机构基本标准.doc
- 北京师范大学2017年《计算机组成原理》考试大纲_北师大考研网.pdf
- 北京教研心得数学.doc
- 北京理工大学 北理工 2005年计算机系统结构基础 大纲 考研真题及答案解析.pdf
- 勾股定理单元评价检测.ppt
- 北京第五季工程设计咨询有限公司设计及效果图报价2.doc
- 北京第二外国语学院翻译硕士(MTI)考研复试分数线未来的变化是会升高还是降低.doc
- 北京航空航天大学2017年计算机学院考研大纲_北理考研网.pdf
- 北京航空航天大学 931自动控制原理考试大纲(2014版)复习重点 复习方法 考试范围.pdf
文档评论(0)