乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 80|回复: 4

伪球

[复制链接]

6

主题

16

帖子

1

银币

初来乍到

Rank: 1

铜币
40
发表于 2010-1-1 09:38:36 | 显示全部楼层 |阅读模式
  1. static void drawPoints(const AcGePoint3dArray &pts, short color)
  2.   {
  3.     AcDbDatabase *pDatabase = acdbHostApplicationServices()->workingDatabase();
  4.     AcDbBlockTableRecordPointer pBlockTableRecord(pDatabase->currentSpaceId(),AcDb::kForWrite);
  5.     for(size_t i=0 ; isetColorIndex(color);
  6.       if(pBlockTableRecord->appendAcDbEntity(pPoint) != eOk)
  7.         delete pPoint;
  8.       else
  9.         pPoint->close();
  10.     }
  11.   }
  12.   //Pseudosphere
  13.   //By Roger Bagula
  14.   //C source by Paul Bourke
  15.   //http://local.wasp.uwa.edu.au/~pbourke/geometry/pseudosphere/
  16.   static void BrxVsArx_doit(void)
  17.   {
  18.     int i,j;
  19.     int n = 250;
  20.     double theta1,theta2;
  21.     double phi1,phi2;
  22.     double x,y,z;
  23.     AcGePoint3dArray pts;
  24.     for (i=0;i<n;i++) {
  25.       theta1 = -PI + TWOPI * i / (double)n;
  26.       theta2 = -PI + TWOPI * (i+1) / (double)n;
  27.       for (j=0;j<2*n;j++) {
  28.         phi1 = -TWOPI + 2 * TWOPI * j / (2.0*n);
  29.         phi2 = -TWOPI + 2 * TWOPI * (j+1) / (2.0*n);
  30.         x = phi1-tanh(phi1);
  31.         y = sech(phi1)*sin(theta1);
  32.         z = sech(phi1)*cos(theta1);
  33.         pts.append(AcGePoint3d(x,y,z));
  34.         x = phi1-tanh(phi1);
  35.         y = sech(phi1)*sin(theta2);
  36.         z = sech(phi1)*cos(theta2);
  37.         pts.append(AcGePoint3d(x,y,z));
  38.         x = phi2-tanh(phi2);
  39.         y = sech(phi2)*sin(theta2);
  40.         z = sech(phi2)*cos(theta2);
  41.         pts.append(AcGePoint3d(x,y,z));
  42.         x = phi2-tanh(phi2);
  43.         y = sech(phi2)*sin(theta1);
  44.         z = sech(phi2)*cos(theta1);
  45.         pts.append(AcGePoint3d(x,y,z));
  46.       }
  47.     }
  48.     drawPoints(pts,1);
  49.     pts.removeAll();
  50.     for (i=0;i<n;i++) {
  51.       theta1 = -PI + TWOPI * i / (double)n;
  52.       theta2 = -PI + TWOPI * (i+1) / (double)n;
  53.       for (j=0;j<2*n;j++) {
  54.         phi1 = -TWOPI + 2 * TWOPI * j / (2.0*n);
  55.         phi2 = -TWOPI + 2 * TWOPI * (j+1) / (2.0*n);
  56.         x = (phi1 - tanh(phi1)) / (phi1*phi1 - 2 * tanh(phi1) + 1);
  57.         y = -sech(phi1) * sin(theta1) / (phi1*phi1 - 2 * tanh(phi1) + 1);
  58.         z = -sech(phi1) * cos(theta1) / (phi1*phi1 - 2 * tanh(phi1) + 1);
  59.         pts.append(AcGePoint3d(x,y,z));
  60.         x = (phi1 - tanh(phi1)) / (phi1*phi1 - 2 * tanh(phi1) + 1);
  61.         y = -sech(phi1) * sin(theta2) / (phi1*phi1 - 2 * tanh(phi1) + 1);
  62.         z = -sech(phi1) * cos(theta2) / (phi1*phi1 - 2 * tanh(phi1) + 1);
  63.         pts.append(AcGePoint3d(x,y,z));
  64.         x = (phi2 - tanh(phi2)) / (phi2*phi2 - 2 * tanh(phi2) + 1);
  65.         y = -sech(phi2) * sin(theta2) / (phi2*phi2 - 2 * tanh(phi2) + 1);
  66.         z = -sech(phi2) * cos(theta2) / (phi2*phi2 - 2 * tanh(phi2) + 1);
  67.         pts.append(AcGePoint3d(x,y,z));
  68.         x = (phi2 - tanh(phi2)) / (phi2*phi2 - 2 * tanh(phi2) + 1);
  69.         y = -sech(phi2) * sin(theta1) / (phi2*phi2 - 2 * tanh(phi2) + 1);
  70.         z = -sech(phi2) * cos(theta1) / (phi2*phi2 - 2 * tanh(phi2) + 1);
  71.         pts.append(AcGePoint3d(x,y,z));
  72.       }
  73.     }
  74.     drawPoints(pts,5);
  75.   }
  76.   inline double static sech(double d)
  77.   {
  78.     return(1.0 / cosh(d));
  79.   }


guyfeudzhjp.PNG

guyfeudzhjp.PNG


cxmoym0iwm1.PNG

cxmoym0iwm1.PNG

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

11

主题

85

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
129
发表于 2010-1-1 09:58:43 | 显示全部楼层
[跑题]哇!看起来不错。可以用来展示黑洞、超新星的模拟和一些动画
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2010-1-2 22:10:32 | 显示全部楼层
:kewl:
回复

使用道具 举报

11

主题

85

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
129
发表于 2010-1-3 06:11:05 | 显示全部楼层
这绝对有一些额外的维度。
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2010-1-7 21:22:10 | 显示全部楼层
:kewl:
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 22:01 , Processed in 0.338697 second(s), 65 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表