首页 / 浏览问题 / 组件GIS / 问题详情
三维场景中如何实现面切割功能?
2EXP 2022年10月09日
使用产品:idesktop10 操作系统:win10 x64
数据类型: 文件型
问题详细描述:.net 组件开发 ,需求是在desktop下的三维场景中,针对矢量面图层,自行绘制线段实现面切割,已尝试使用Geometry.SplitRegion 实现,返回false失败,请问有无相关示例代码?

1个回答

您好,请问您需要解决的主要是什么问题呢,

绘制的话,使用action3D绘制事件中或者跟踪图层中即可,

实现逻辑的话,需要您根据您业务想要的效果需求自行设计,

三维面对象分割方法的话, SplitRegion是二维面对象的方法,不适用于三维面对象。

因此如果要使用SplitRegion需要转为二维对象数据来处理。

如果要使用三维线,三维面对象来实现的话,没有现成的功能接口功能,

需要您根据基础功能拆分设计来实现,

比如绘制时的吸附捕捉、线面对象位置关系的判定、插入节点选取、节点分割、面对象构造。

希望可以帮助到您。
10,383EXP 2022年10月09日
感谢,目前是对三维场景中的二维面进行切分,绘制线段使用了Tracking事件得到GeoLine来切割,现在问题是在三维场景中怎么吸附和捕捉面,要不然不能确保有交点
捕捉这个你可以写在鼠标的移动或者点击事件里,比如鼠标指针屏幕坐标找地理坐标,地理坐标找最近对象节点坐标,点击事件绘制的坐标值节点的值,这种类似的思路来实现捕捉吸附什么的。

或者换一种实现路径,绘制的线垂直拉伸成一个三维立面,做这个立面和切割面的相交,求交线,然后用这个交线落在面对象边界的点来做节点分割。

能实现的具体路径思路很多,具体怎么来实现得看你业务上怎么合逻辑需求来设计。
...