C#可视域建立后无法立即获取可视域体

0 投票

1.在进行可视域分析的时候,在一个方法中直接写了viewshed3d.build(),紧接着想要获取可视域分析的整个视锥闭合体,却无法获取。结果为null,为什么?如下:

而且 如果不放在同一个方法中,即viewshed3d.build()的方法执行完毕后,再另一个方法中分别执行viewshed3d.getfrustumbody方法 是可以获取到闭合体的,但是viewshed3d.getvisiblebody、viewshed3d.gethiddenbody、viewshed3d.getvisibleinterface均无法获取到。为什么?

2.在建立可视域的时候,明明设置了可视域颜色、不可视域颜色、可视域分析的提示线颜色的透明度为完全透明,但是只有可视域分析的提示线颜色时完全透明的,而可视域颜色、不可视域颜色均做不到完全透明,为什么?

 

2月 14 分类:  197次浏览 | 用户: tianyinwei 才疏学浅 (15 分)

1个回答

1 投票
 
已采纳
你好,关于你的第一个问题,可视域分析需要build执行过后才能产生所谓闭合体,你放在一个方法里,但是没有执行build 所以为null,后面的问题你把你具体代码发出来看看,单从这几个代码还看不出来问题
2月 14 用户: 邬袁凯 名扬四海 (1,304 分)
采纳于 2月 14 用户:tianyinwei
你回答的这个 我再第一个问题图片的下面已经说了,我放在另一个方法里(执行build后)确实获得了闭合体,但是却没有获得viewshed3d.getvisiblebody、viewshed3d.gethiddenbody、viewshed3d.getvisibleinterface的闭合体,而只获得了viewshed3d.getfrustumbody的闭合体。

而至于第二个问题,没有什么代码可以提供,可视域build,提前设置颜色而已,那几行代码足以说明问题。
是这样的,我测试了一下,按照先执行build后,在进行viewshed3d.getvisiblebody、viewshed3d.gethiddenbody、viewshed3d.getvisibleinterface,都是可以获得的,包括下面的颜色也是可以的,你看看是不是版本的问题,我这边是9.1.0的
感恩,测出来了!
...