Python --- 在封闭的多重曲面内生成随机点

[复制链接]
跳转到指定楼层
今天有人问如何在多重曲面内生成随机点,大概写个案例。有兴趣的可以看看。



  1. #coding=utf-8
  2. import rhinoscriptsyntax as rs
  3. import random
  4. import Rhino.Geometry as rg

  5. def ptRange(pt01,pt02):
  6.     xB = random.uniform(pt01[0],pt02[0])
  7.     yB = random.uniform(pt01[1],pt02[1])
  8.     zB = random.uniform(pt01[2],pt02[2])
  9.     return xB,yB,zB

  10. randomPtsNum = rs.GetInteger("输入生成的随机点数")
  11. brep = rs.GetObject("选择要生成随机点的多重曲面",rs.filter.polysurface)
  12. geo_brep = rs.coercebrep(brep)
  13. box = geo_brep.GetBoundingBox(True)

  14. random_pt = []

  15. while (len(random_pt)<= randomPtsNum):
  16.     pt = ptRange(box.Min,box.Max)
  17.     if rs.IsPointInSurface(brep,pt,True,3):
  18.         random_pt.append(pt)

  19. for pot in random_pt:
  20.     rs.AddPoint(pot)
复制代码




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
您需要登录后才可以回帖 登录 | 注册成为会员

本版积分规则