找回密码
 注册
Simdroid-非首页
查看: 216|回复: 4

[原创] 随机凸8面体小程序

[复制链接]
发表于 2007-7-18 21:23:44 | 显示全部楼层 |阅读模式 来自 大连理工大学
[x,y,z]=sphere(20);
i=1+round(rand.*4);
x1=x(11,i);y1=y(11,i);z1=z(11,i);
[the ph r]=cart2sph(x1,y1,z1);
a=-30+rand.*60;
the1=the+90+a;
[x2,y2,z2]=sph2cart(the1,ph,r);
[the ph r]=cart2sph(x2,y2,z2);
the2=the1+90+a;
[x3,y3,z3]=sph2cart(the2,ph,r);
[the ph r]=cart2sph(x3,y3,z3);
the3=the2+90+a;
[x4,y4,z4]=sph2cart(the3,ph,r);
i1_row=1+round(rand*7);i1_coloun=1+round(rand*19);
j1_row=12+round(rand*8);j1_coloun=1+round(rand*19);
z5=z(i1_row,i1_coloun);
x5=x(i1_row,i1_coloun);
y5=y(i1_row,i1_coloun);
z6=z(j1_row,j1_coloun);
x6=x(j1_row,j1_coloun);
y6=y(j1_row,j1_coloun);
XX=[x1;x2;x3;x4;x5;x6];
YY=[y1;y2;y3;y4;y5;y6];
ZZ=[z1;z2;z3;z4;z5;z6];
X=[XX,YY,ZZ];
c=convhulln(X);
for i=1:size(c)
    j=c(i,[1,2,3,1]);
    h(i)=patch(X(j,1),X(j,2),X(j,3),rand,'FaceAlpha',0.6);
    pause(0.5);
end
view(3)
colormap(copper);
shading flat
shading faceted
light('position',[0 -10 1.5],'style','infinite')
lighting phong
material shiny
set(gcf,'color','k')
alpha(1);
n=18;mmm=moviein(n);  % 预设画面矩阵。
for i=1:n
    rotate(h,[0 60],20); % 使图形绕z轴旋转25度/次。
    drawnow; % 擦除原位置上原有对象,刷新屏幕;
    pause(0.5);
    mmm(:,i)=getframe;    % 捕获画面。
end
movie(mmm,5,10)  % 以速度10帧/s,重复播放5次。

[ 本帖最后由 chengweifeng 于 2007-7-18 21:30 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

 楼主| 发表于 2007-7-24 20:39:20 | 显示全部楼层 来自 大连理工大学
Simdroid开发平台
现在小弟想从一凸多面体中提取每条边,即 想得到每条边的直线方程(一般直线方程或参数方程)。

1。对于一般直线方程,需要两个有公共交线的面来确定,但是,matlab内嵌函数convhulln得到的凸多面体
      的面,由下面的结果可见,并非逐次相交。
      XX=[x1;x2;x3;x4;x5;x6];  
      YY=[y1;y2;y3;y4;y5;y6];
      ZZ=[z1;z2;z3;z4;z5;z6];
      X=[XX,YY,ZZ];
      c=convhulln(X)
      c =

            6     1     2
            1     6     4
            3     6     2
            6     3     4
            1     5     2
            5     1     4
            5     3     2
            3     5     4
    由c可知,面c(1,:)与面c(2,:)相交,但是面c(2,:)与面c(3,:)并不相交。如何表示所有边的方程呢?  对此,
   小弟一筹莫展!!
2。对于参数方程,考虑由两点式转化得到。但是,需要对顶点排序,首尾相接,顺次得到每条边的
      两点式方程。对此,小弟也是不知所措!

望高手指教,小弟先谢了!

[ 本帖最后由 chengweifeng 于 2007-7-24 20:47 编辑 ]
回复 不支持

使用道具 举报

 楼主| 发表于 2007-8-1 14:15:20 | 显示全部楼层 来自 大连理工大学
在原有八面体的基础上进行延凸后得到任意多面体:

[ 本帖最后由 chengweifeng 于 2007-8-1 18:51 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2010-12-15 15:51:21 | 显示全部楼层 来自 陕西西安
请问最近上线了没?想和你联系一下。。qq396398028
回复 不支持

使用道具 举报

发表于 2010-12-15 15:51:40 | 显示全部楼层 来自 陕西西安
天天在线等……

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-5 05:24 , Processed in 0.049953 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表