Coal Mine Roadway名称显示方法设想

本文介绍了一种将三维线条转化为二维线条并进行屏幕裁剪的方法。首先,将巷道中心线转化为三维线条对象,接着生成二维线条对象,并进行屏幕范围内的裁剪。裁剪后,根据中点确定文字显示位置。算法包括三维点转二维点、线条交叠检测及文字布局计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、可能需要定义的类

        a、二维和三维线段类(包含两个位置坐标,两种对象都是用Vector3类,对于三维线段来说,这个V3的值是三维空间坐标,对于二维线段来说,V3的x和y值表示二维坐标,z值表示基于当前渲染摄像机的三维深度,如果x和y的值都位于0和1之间,说明该点在屏幕范围内)

        b、二维和三维线条类(包含巷道名称和二三维线段列表)

2、具体做法

        a、首先把巷道所有中心线转化成三维线条对象

        b、其次把所有三维线条对象生成基于屏幕的二维线条对象,此时二三维线条对象的数量是相同的。

        c、再次,对所有的二维线条对象进行裁剪操作,生成屏幕范围内剪裁好的二维线条对象,对于一些裁剪之前的弯曲的二维线条对象,裁剪之后可能生成多个二维线条对象,但它们都与未裁剪的二维对象具有相同的巷道名称。

        d、然后,在裁剪之后的二维线条对象上确定文字显示的位置。

3、算法

        a、三维点转二维点。

        b、对二维线条内的线段逐个检测是否与屏幕范围交叠,将交叠的连续线段组成裁剪后的二维线条对象数组。

        c、计算二维线条的路径中点,沿中点排布文字位置。

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值