乐筑天下

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

堆叠矩形

[复制链接]

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2016-7-24 01:28:26 | 显示全部楼层 |阅读模式
我正在尝试在选定的折线内的某些距离之间堆叠矩形,我已经弄清楚了东西,但不确定如何同时解决南北问题。任何帮助都将不胜感激,ObjectId recTangleband=CreateRectanger(pline.GeometricExtents.MinPoint,pline.GeometricExtents.MaxPoint);。

双重东西方主义=Math.Abs(pline.GeometricExtents.MinPoint.X-pline.GeometricExtents.MaxPoint.X);。
双南北向=Math.Abs(pline.GeometricExtents.MinPoint.Y-pline.GeometricExtents.MaxPoint.Y);。

双topleftx=pline.GeometricExtents.MinPoint.X;。
双toplefty=pline.GeometricExtents.MaxPoint.Y;。
Point3d topleft=new Point3d(topleftx, toplefty,0);。

双倍距离=30;。
双校验Horz=0;。

同时(check horz。
{。
矩形边界=创建矩形(新的Point3d(topleft. X+check horz, topleft. Y,0),新的Point3d(topleft. X+check horz+距离, topleft. Y-距离,0));。
check horz=check horz+距离;。
}谢谢!。

puhlck1lwbj.JPG

puhlck1lwbj.JPG

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

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

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2016-7-24 03:11:15 | 显示全部楼层
嗨,这里有个办法:    var extents = pline。几何范围;。
创建矩形(范围,最小点,范围。MaxPoint);。

int east westnum =(int)((extents,X范围,min point . X)/30.0);。
int northsouthNum = (int)((范围,最大点,Y -范围。min point . Y)/30.0);。

vector 3d horizDisp = new vector 3d(30.0,0.0,0.0);。
vector 3d vert disp = new vector 3d(0.0,30.0,0.0);。

Point3d p1 =新的Point3d(范围,X,范围。MaxPoint.Y - 30.0,0.0);。
point 3d p2 = P1+horiz disp+vert disp;。

for(int I = 0;i 。
{。
Point3d ll = p1。
Point3d ur = p2。
for(int j = 0;j 。
{。
CreateRectangle(ll,ur);。
ll+= horiz disp;。
ur+= horizDisp;。
}。
P1-= vert disp;。
p2-= vert disp;。
}。
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2016-7-24 03:42:50 | 显示全部楼层
谢谢你贾尔斯,永远感谢你
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 16:37 , Processed in 0.531130 second(s), 61 queries .

© 2020-2025 乐筑天下

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