判断点是否在类锥形区域外部
问题描述:
蓝线部分的区域是由一个圆不断更新圆心和半径形成的
圆初始为A(ax, ay),半径为r
圆随着参数t而变化,t的取值范围为(0, 1],圆的半径为r/t, 圆心坐标为(ax/t, ay/t)
圆扩展的方向为向量 v 方向
给一点D(a, b),判断D是否在蓝色区域内

解决方案:
1. 判断点是否在半圆区域,利用 || D - A || < r 判断,若成立,则D在蓝色区域内,若不成立,则执行第2步
2. 作D在向量 v 上的投影,设投影为C,因为C在向量 v 上,所以设C的坐标为(t * (bx - ax), t * (by - ay))
3. DC与向量 v 垂直,根据垂直两向量点乘等于0可求得参数t
4. 若 t 小于0,则一定不在蓝色区域内,特别情况半圆区域已经在第1步判断过了
5. 根据t可求得当前所在圆的半径及DC距离,判断DC距离与当前圆的半径大小,即可判断D是否在蓝色区域内
浙公网安备 33010602011771号