设有三个点 a 、b、c, 求向量ba 和bc的角平分线向量bp,如下所示
方法是利用向量的加法,当两个向量ba 和bc的长度相等时,相加得到的向量即角平分线(三线合一),
代码如下:
float2 fun(float2 a, float2 b, float2 c)
{
float2 edge_a = (a-b);
float2 edge_b = (c-b);
float2 edge_aa = edge_a * length(edge_b);
float2 edge_bb = edge_b * length(edge_a);
float2 _move_dir = (edge_aa + edge_bb);
float2 move_dir = normalize(_move_dir); // 向量相加,等腰三角形三线重合
return move_dir;
}