首页 > 编程知识 正文

向量如何表示角平分线,角平分线的向量怎么求

时间:2023-05-04 06:41:11 阅读:178504 作者:2606

使用一(准备) commons-math3包的向量计算。

2 .前提:输入参数为三个点,两个向量共享一个起点。

三.操作:

3.1 )利用向量相加构成的平行四边形定律求平分线。 见图1.1、1.2

图1.1

图1.2

3.2 )但平行四边形的对角线不是平分线。 菱形的对角线才是平分线。 因此,将向量归一化。 将各成分除以模式长度,转换为单位向量,且不改变方向,可以形成菱形对角线。 将归一化后的两个向量相加,即可得到对角线向量(图1.3 )。

(图1.3 )

publicstaticpointgetangularbisectorpoint (point left,Point right, point warehouse (realvector1=newarrayrealvector//realvectorcommon-math3realvectorvector2=newarrayrealvector ) right.y-wwww } realvectorvector=vector1. map divide (vector1. get norm () ).add ) vector2.mapdivide ) vector2. get double [ ] vector array=vector.to array (; doublex=vector array [0] warehouse.x; doubley=vector array [1] warehouse.y; 返回新点(x,y ); //注意1如果是锐角,钝角会向相反方向延长。 2 .结果有微妙的误差} 3.3 )用上面的代码求出的点和中心仓库的点连接起来就可以得到平分线

3.4 )利用向量的向量积,可以从判断其他点位于平分线哪一侧的公式中得到

p=(x1,y1 ),p=(x1,y2 ) )。

PQ=x1y2 - x2y1;

如果P Q 0,则p为q的顺时针方向。

如果P Q 0,则p为q的逆时针方向。

P Q=0时,p和q是同一条直线,但可以是同方向,也可以是反方向。

publicstaticvoiddividepoints (listpointpoints,Point wareHouse,Point angularBisector ) pointpoint=newpoint ) angular bisectttion listpointotherpartclients=new ArrayList (; 点1:点(point point2=new point )点1.y-warehouse.y,点1.y-warehouse.y; double data=point.x * point2. y-point2. x * point.y; if(data0)//point为point2的逆时针方向onepartclients.add(point1); } else { otherpartclients.add (point1); }三.参考文献

3359 blog.csdn.net/m0 _ 37667021/article/details/76498623

3359 blog.csdn.net/white forever/article/details/82762540

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。