NCF参数化建筑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7809|回复: 5
打印 上一主题 下一主题

gh如何实现空间多段线交点求面?

[复制链接]
跳转到指定楼层
1m
发表于 2013-7-1 12:54:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

多段线交点求面.3dm

46.51 KB, 下载次数: 9, 下载积分: 照度 -1 lux

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
2m
发表于 2013-7-1 14:33:15 | 只看该作者
本帖最后由 denghua 于 2013-7-1 17:47 编辑

书上写的方法(我没试过,不过应该是可以的)是:
1. 在下面 定义一个接近的mesh 来定义法线 (因为没有法线 系统不能自定义曲面的内外) ;
2. 求出所有交点 作为顶点集合V。每个元素vi{3dvector 位置,linkedlist<halfedge>关联的边的单循环链表}
3. 遍历V 求所有与vi距离为0的线 求在曲线上 参数(不是距离) 与vi上的参数 差异最小的参数的两个顶点 作为该点的 邻点集合 Nvi
4. 对vi 根据对应的法线 逆时针访问 Nvi中所有元素,得到二元序集族 【vi,vj】 作为halfedgeij 放入该点的半边单循环链表。
5 把所有半边提取出来得到半边集E,根据逆时针最小角原则生面 得到面集合F(如果最小角不为π则下一半边直到再次遇到自身 定义面,如果最小角为π 则停止并移除当前子过程访问的半边)
6 融合 所有face
3m
发表于 2013-7-1 15:24:02 | 只看该作者
本帖最后由 denghua 于 2013-7-1 17:47 编辑

4m
 楼主| 发表于 2013-7-2 13:00:10 | 只看该作者
5m
 楼主| 发表于 2013-7-2 18:52:26 | 只看该作者
denghua 发表于 2013-7-1 15:24
另外一个省事但 每次都要人工处理的办法 是用一个 拓扑与结果一致的 mesh 去 替换

大神的第二种方法通过xy方向两次排列,如图对多条线的点很错乱,也许是自己哪弄错了?还请多多指点。
6m
发表于 2013-7-3 09:37:01 | 只看该作者
GUYCHOOOU 发表于 2013-7-2 18:52
大神的第二种方法通过xy方向两次排列,如图对多条线的点很错乱,也许是自己哪弄错了?还请多多指点。第一 ...

我是 在下面垫了一个大的曲面来定位那不是世界坐标
那是曲面坐标 的uv

小黑屋|手机版|NCF参数化建筑论坛 ( 浙ICP备2020044100号-2 )    辽公网安备21021102000973号

GMT+8, 2024-4-20 23:35 , Processed in 0.063058 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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