求三角形的角平分线的斜率??

cqw4101206 2003-09-29 07:43:34
有一三角形三点坐标已知(x1,y1),(x2,y2),(x3,y3)
现欲求过(x1,y1)的角平分线的斜率??
...全文
1755 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xizhouhawk 2003-09-30
  • 打赏
  • 举报
回复
huangjuliang() (
Lewolf 2003-09-30
  • 打赏
  • 举报
回复
使用代数的方式实现起来是方便了,但是并不一定是最优化的算法,因为最终是要进行数值计算,可以考虑采用几何算法,尽量避免使用三角函数运算。

中间变量是一定要使用的,这样可以价款运算速度,首先是坐标平移,将顶点平移到0,0点,这样对斜率是没有影响的,然后求出以其它任意一个点代原点的距离,这样需要一次开方运算。

然后根据另一个点 的斜率求出交点的坐标,交点和第二个点的中点就是角平分线上的一个点的坐标

和第一个顶点求斜率是非常简单的,总共在整个运算过程中只有一次运算是复杂运算——开方运算,其他的运算不是线性运算就是乘法,对于计算机而言运算速度会快很多的。
huangjuliang 2003-09-30
  • 打赏
  • 举报
回复
我感觉这样就不用解方程了,都是开方或乘方运算了!
不过,这里的正负还要判断一下的!
huangjuliang 2003-09-30
  • 打赏
  • 举报
回复
先算(x1,y1),(x2,y2)直线与水平线的夹角,设为角A
然后算(x1,y1),(x3,y3)直线与水平线的夹角,设为角B
而这们的角平分线就是(A+B)/2
这样我们知道tgA和tgB (就是(x1,y1),(x2,y2)直线的斜率和(x1,y1),(x3,y3)直线的斜率)
可先求tg(A+B),再求cos(A+B)和sin(A+B),这里可以这么来求cos(A+B)
1+tg(A+B)*tg(A+B)=1/(cos(A+B)*cos(A+B))
这里乘方打不出,只能这样了!
这样再根据tg((A+B)/2)= sin(A+B)/(1+cos(A+B)
这样就可以求出tg((A+B)/2)

这样我们可以根据一些三角变换就可以求出tg((A+B)/2)
这也就是所要求的角平分线的斜率了
Lewolf 2003-09-30
  • 打赏
  • 举报
回复
那是上面有错别字
就是说,可以以第一个点为圆心,第一个和第二个点之间的距离为半径画一个圆,找出角平分线上的一个点,求斜率就容易了。
xizhouhawk 2003-09-30
  • 打赏
  • 举报
回复
: huangjuliang
我是赞成你的方法!
不错!
amwn 2003-09-30
  • 打赏
  • 举报
回复
Lewolf(无名)
只有一次开方那还不错!
只是这下面两句什么意思

然后求出以其它任意一个点代原点的距离,这样需要一次开方运算。

然后根据另一个点 的斜率求出交点的坐标,交点和第二个点的中点就是角平分线上的一个点的坐标


huangjuliang() 方法还可以!
huangjuliang 2003-09-30
  • 打赏
  • 举报
回复
To xizhouhawk()
???
zihan 2003-09-29
  • 打赏
  • 举报
回复
呵呵,学过高数都知道怎么算,只是怎样最有利于编程处理了.
freshman2003 2003-09-29
  • 打赏
  • 举报
回复
我觉得你要注意的是最好把斜率公式写出来后,一次性代入数据进行计算,这样可以减少误差,最好不设中间值。至于这个斜率公式学过高中几何就应该会求。
hdaq 2003-09-29
  • 打赏
  • 举报
回复
先算(x1,y1),(x2,y2)直线与水平线的夹角
然后算(x1,y1),(x3,y3)直线与水平线的夹角

然后两个角的平均值就是过(x1,y1)的角平分线与水平线的夹角,知道夹角,我想没有理由不知道斜率了吧。

当然,在计算的过程中需要注意三角形三点在各象限的分布

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧