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

[命令/FISH] 利用FISH建立的另一种球模型

[复制链接]
发表于 2008-6-16 19:46:34 | 显示全部楼层 |阅读模式 来自 山东东营
整天潜伏在论坛里,觉得里面的高人真是多呀。鉴于软件中没有球模型的直接命令,

本人参考了dynamax等大侠的帖子,然后稍作修改(暂时没有发现类似的),建立了这样

一种模型,也方便了球模型和圆柱模型的连接问题,请大家指点。
                                   半球

                                           球和圆柱连接


如果大家觉得可以,那我就把程序贴出来分享一下,呵呵,如果版主觉得
有创新性,可以适当加些积分给鼓励鼓励。

[ 本帖最后由 cocacolaszc 于 2008-6-16 21:37 编辑 ]

本帖子中包含更多资源

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

×

评分

1

查看全部评分

发表于 2008-6-16 21:07:33 | 显示全部楼层 来自 江苏南京
Simdroid开发平台
需要作者把程序贴出来,供大家学习!
回复 不支持

使用道具 举报

 楼主| 发表于 2008-6-16 21:34:25 | 显示全部楼层 来自 山东东营
多谢版主的鼓励,这有贡献积分了,心里特舒服,以后还会为大家贡献一份力量的,呵呵


下面是原程序,
def parashpere
    R = 1.2              
    m = 1.1176           
    g = m/2  
    h = sqrt(R*R-g*g)            
    k=h+1
end
parashpere
gen zone cyl p0 0 0 h p1 g 0 h p2 0 0 0 p3 0 g h size 16 16 16 rat 1 1 1  ;建立圆台模型,可以实现与圆柱连接
;gen zone cyl p0 0 0 R p1 g 0 R p2 0 0 0 p3 0 g R size 32 32 32 rat 1 1 1 ;建立圆球模型
plo blo gro axes red
;pause
def  make_cone1
           p_gp=gp_head
   loop while p_gp#null
           px=gp_xpos(p_gp)
           py=gp_ypos(p_gp)
           pz=gp_zpos(p_gp)
           dist=sqrt((px)*(px)+(py)*(py))
        if dist = g      
                   gp_xpos(p_gp)=px*(sqrt(R*R-(pz)*(pz)))/dist
                   gp_ypos(p_gp)=py*(sqrt(R*R-(pz)*(pz)))/dist
                   gp_zpos(p_gp)=pz
           else
                   gp_xpos(p_gp)=px*(sqrt(R*R-(pz)*(pz)))/g
                   gp_ypos(p_gp)=py*(sqrt(R*R-(pz)*(pz)))/g
                   gp_zpos(p_gp)=pz         
        endif        
      p_gp=gp_next(p_gp)
   endloop
  end
make_cone1
gen zone cyl p0 0 0 k p1 g 0 k p2 0 0 h p3 0 g k size 16 16 16 rat 1 1 1;建立圆柱
gen zone ref dip 90 dd 90
pause
gen zone ref dip 90 dd 90
gen zone ref ori 0 0 0 nor 0 0 -1

[ 本帖最后由 cocacolaszc 于 2008-6-16 21:36 编辑 ]
回复 不支持

使用道具 举报

发表于 2008-6-17 09:13:45 | 显示全部楼层 来自 江苏南京
作者能不能把dat文件上传上来,直接复制拷贝出现乱码,一直被这个问题困扰,多谢!!
回复 不支持

使用道具 举报

 楼主| 发表于 2008-6-17 09:49:02 | 显示全部楼层 来自 山东东营

本帖子中包含更多资源

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

×
回复 不支持

使用道具 举报

发表于 2008-6-17 15:41:29 | 显示全部楼层 来自 云南昆明

太好了
学习
回复 不支持

使用道具 举报

发表于 2008-6-26 22:36:47 | 显示全部楼层 来自 德国
有意思,下来研究一下.
回复 不支持

使用道具 举报

发表于 2008-6-27 17:07:52 | 显示全部楼层 来自 安徽淮南

回复 3# 的帖子

楼主做的很好,我稍做了改动
这部分可改为
def  make_cone1
           p_gp=gp_head
   loop while p_gp#null
           px=gp_xpos(p_gp)
           py=gp_ypos(p_gp)
           pz=gp_zpos(p_gp)
           dist=sqrt((px)*(px)+(py)*(py))
        if dist = g      
                   gp_xpos(p_gp)=px*(sqrt(R*R-(pz)*(pz)))/dist
                   gp_ypos(p_gp)=py*(sqrt(R*R-(pz)*(pz)))/dist
                   gp_zpos(p_gp)=pz
           else
                   gp_xpos(p_gp)=px*(sqrt(R*R-(pz)*(pz)))/g
                   gp_ypos(p_gp)=py*(sqrt(R*R-(pz)*(pz)))/g
                   gp_zpos(p_gp)=pz         
        endif        
      p_gp=gp_next(p_gp)
   endloop
  end
可改为
def  make_cone1
           p_gp=gp_head
   loop while p_gp#null
           px=gp_xpos(p_gp)
           py=gp_ypos(p_gp)
           pz=gp_zpos(p_gp)
           dist=sqrt((px)*(px)+(py)*(py))
                   gp_xpos(p_gp)=px*(sqrt(R*R-(pz)*(pz)))/g
                   gp_ypos(p_gp)=py*(sqrt(R*R-(pz)*(pz)))/g
                   gp_zpos(p_gp)=pz         
               
           p_gp=gp_next(p_gp)
   endloop
  end
回复 不支持

使用道具 举报

发表于 2008-6-28 16:43:18 | 显示全部楼层 来自 黑龙江鸡西

顶!
学习学习啊!
回复 不支持

使用道具 举报

发表于 2008-6-28 22:09:29 | 显示全部楼层 来自 河北石家庄
有意思,下来研究一下.
谢谢共享。
回复 不支持

使用道具 举报

发表于 2010-4-5 16:31:05 | 显示全部楼层 来自 山东青岛
好,顶一下!
回复 不支持

使用道具 举报

发表于 2010-11-6 15:57:23 | 显示全部楼层 来自 江苏
感谢楼主分享!!!!
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-9-25 10:24 , Processed in 0.057041 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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