视野范围效果复现

B站看到个效果,用Houdini基本复现一下
https://www.bilibili.com/video/BV1n34y1T7zM/?vd_source=45823cc7f3ac505694c035dd264cf594#reply185324895392

视野范围

匆匆忙忙写,就不做字体的格式大小,排版那些了


原本地图
在这里插入图片描述


布尔裁剪出一个圆,大小是设置的视野范围的圆。如果想要绝对的精度,可以不用传统多边形的一串点来描述圆,直接用C++写,做个结构体,点+半径来描述圆,CGAL还是哪个库,是有这个核的

在这里插入图片描述

地图的每个顶点和圆心的线段,和地图做求交。求交就是某个线段和“场景中其他所有线段”求交点。
遍历所有线段,嫌计算量太大的话再用网格划分或者四叉树等办法。这里就不用了,小场景演示。
如果有交点,那么就说明形不成所需的三角形。
所需的三角形,在下面提到

在这里插入图片描述


所需三角形就如这两个。。三角形的侧面边,没有和场景产生交点。
这种三角形就是我们需要的
这张图其实并不恰当


所需三角形应该是这里的很细长的那些,因为场景肯定很复杂,有很多点,不会像上图红色的那么巧
在这里插入图片描述


相邻的两两线段,依次找出所有所需三角形

在这里插入图片描述

就如这样,但有一个特殊情况,就是某个区域内,没有遮挡物,视野能看到最远,那么此时就不是三角形了,而是一段圆弧

在这里插入图片描述

圆弧就例如下面红色的标注

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值